Malloc no puede allocar suficiente memoria, C

Ulmo

La cuestion es relativamente simple, y creo q la respuesta es q no tiene fácil solución, pero por si acaso, voy a la carga.

Estoy usando un programa en C q no esta desarrollado por mi, la cuestion es q llega un momento q el programa reserva memoria para guardar una matriz, pero lo hace en forma de vector:

matriz = (signed short *)malloc(sizeof(signed short)*filas*columnas);

Ahora viene el problema, cuando el vector q se crea para representar la matriz es demasiado grande, el malloc no es capaz de allocar suficiente memoria junta, pese a q el sistema disponga de memoria de sobras, y me devuelve NULL.

Creo q la única solución es hacer un malloc para cada una de las filas de la matriz, pero estando representada como un vector, creo q no tiene más solución q rehacer todo el código del programa ¿ no ?

Lo digo pq actualmente esta posibilidad no es factible, asi q creo q me tocará joderme

:¬¬:

r2d2rigo

Prueba a hacer un malloc de 1 byte y luego resizearlo al tamaño que quieras con realloc.

Usuarios habituales

  • r2d2rigo
  • Ulmo