I tried the following to reallocate a 2D float
array whose size chages from 2X2 to 3X3. The code throws a segfault
while trying to realloc
memory for weights[2]
.
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));
}
Of course, I can free
the 2D array and malloc
again, but I was looking for a more elegant solution. Any ideas?