나는의 malloc를 사용하여 2 차원 배열을 만들려고 해요. 코드가 올바르지 만 값을 설정하려고하면 "Segmentation Fault"메시지가 나타납니다.분할 오류, 2 차원 매트릭스, malloc에
#include <stdio.h>
#include <stdlib.h>
int main(){
int i, j;
int **m = (int **) malloc(5 * sizeof(int));
if(m == NULL){
printf("Error");
getchar();
exit(-1);
}
for(i = 0; i < 5; i++){
m[i] = (int *) malloc(5 * sizeof(int));
if(m[i] == NULL){
printf("Error");
getchar();
exit(-1);
}
}
for(i = 0; i < 5; i++){
for(j = 0; j < 5; j++){
printf("%d %d\n", i, j);
m[i][j] = 0;
}
}
for(i = 0; i < 5; i++){
for(j = 0; j < 5; j++){
printf("%d ", m[i][j]);
}
printf("\n");
}
}
감사합니다.
를 사용하는 경우도
이는 C 캐스트하지 않는 이유는 당신이 포인터의 배열을 할당이 문을 수정해야한다고 생각 태그 –C++과 같이'INT ** m = (INT **)의 malloc을 (5 * sizeof (int *)); ' – Ganesh
메모리 누수가 있습니다. – SGG