Soy un poco nuevo para malloc y C en general. Quería saber cómo puedo, si es necesario, ampliar el tamaño de una matriz de tamaño fijo con malloc.C: expandir una matriz con malloc
Ejemplo:
#define SIZE 1000
struct mystruct
{
int a;
int b;
char c;
};
mystruct myarray[ SIZE ];
int myarrayMaxSize = SIZE;
....
if (i > myarrayMaxSize)
{
// malloc another SIZE (1000) elements
myarrayMaxSize += SIZE;
}
- el ejemplo anterior se debe dejar en claro lo que quiero lograr.
(Por cierto: Necesito esto para un intérprete que escribo: El trabajo con una cantidad fija de variables y en caso de que se necesitan más, sólo asignar de forma dinámica)
'x = realloc (x, newsize)' es una pérdida de memoria esperando a suceder. –
Buen punto. He actualizado el código de ejemplo para manejar fallas de realloc. –
'myarray = myrealloced_array)' debe ser 'myarray = myrealloced_array;' :) – Saul