nxn 행렬에 스토리지를 할당하는 함수를 작성하고 있습니다. 나는 다음과 같은 코드를 실행하면행렬에 스토리지 할당하기
void assign_matrix_storage(double **matrix, int n){
if((matrix = malloc(n * sizeof(double*))) == NULL){
printf("ERROR: Memory allocation failed\n");
exit(EXIT_FAILURE);
}
int i;
for(i = 0; i < n; i++){
if((matrix[i] = malloc(n * sizeof(double))) == NULL){
printf("ERROR: Memory allocation failed\n");
exit(EXIT_FAILURE);
}
}
return;
}
는 그러나, 나는 마지막 문에 세그먼트 폴트를 얻을 : 왜이
double **A;
assign_matrix_storage(A, 2);
A[1][1] = 42;
입니까?
http://stackoverflow.com/questions/16004668/c-allocating-a-matrix-in-a-function/27366086#27366086 당신은 내가 기능을 할당하여 만든 프로그램을 찾을 수 위 C (gcc C11/C99)에 대한 가능한 모든 방법으로 행렬을 조작합니다. 어쩌면 그것은 당신에게 유용 할 것입니다 ... – 42n4