Hola a tod@s. El problema que tengo es que al acceder al último término de una matriz generada con 'malloc', el programa deja de funcionar.
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:
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:
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