Código
matriz = (int **)malloc(orden * sizeof(int)); if(matriz == (int **)0) { printf("Error asignando memoria a la matriz (primer paso)"); return 0; } for(int i = 0; i < orden; i++) { matriz[i] = (int *)malloc(orden * sizeof(int)); if(matriz[i] == (int *)0) { printf("Error asignando memoria a la matriz (segundo paso)"); return 0; } }
La variable 'matriz' es de tipo 'int **'. Cuando intento cambiar el valor de 'matriz[orden - 1][orden - 1], el programa se cierra inesperadamente (Windows). Estoy compilando con MinGW usando el siguiente comando:
Código
gcc -Wall -std=c99 -o main.exe main.c
No me salta ningún 'Warning'.
La parte donde cambio los datos de la matriz es:
Código
int tempValue; int *tempPointer; for(unsigned int fila = 0; fila < orden; fila++) { for(unsigned int columna = 0; columna < orden;) { printf("\nIntroduzca el elemento fila %u columna %u: ", fila, columna); if(scanf("%i", &tempValue) == EOF) { printf("\nLa proxima vez introduzca un numero valido."); } else { tempPointer = matriz[fila]; tempPointer[columna] = tempValue; columna++; } } } Según el debugger, el programa crashea en