【发布时间】:2012-09-04 01:09:26
【问题描述】:
我尝试了以下方法来重新分配一个 2D float 数组,其大小从 2X2 变为 3X3。代码在尝试为weights[2] 存储realloc 时抛出segfault。
num_vertices = 2;
float **weights = malloc(num_vertices*sizeof(float *)); // weight array matrix
for(i = 0; i < num_vertices; i++){
weights[i] = malloc(num_vertices*sizeof(float));
}
num_vertices = 3;
weights = realloc(weights, num_vertices*sizeof(float *)); // weight array matrix
for(i = 0; i < num_vertices; i++){
weights[i] = realloc(weights[i], num_vertices*sizeof(float));
}
当然,我可以free 二维数组和malloc 再次,但我正在寻找更优雅的解决方案。有什么想法吗?
【问题讨论】: