main
안에있는 m
의 첫 번째 요소에 액세스하려고하면 다음과 같은 간단한 예가 발생하면 세그먼트 화 오류가 발생합니다.이 간단한 C 예제가 세그 폴트로 끝나는 이유는 무엇입니까?
왜 이런 일이 발생합니까?
어떻게 해결할 수 있습니까? 그렇지만 코드의 전체 구조는 동일하게 유지할 수 있습니까?
감사합니다.
#include <stdio.h>
#include <stdlib.h>
double *array(int cols) {
return malloc(cols*sizeof(double));
}
void create_and_modify_array(double *m) {
m = array(10);
m[0] = 123;
}
void main() {
double *m;
create_and_modify_array(m);
printf("%f\n", m[0]);
}
당신은 main''에서'm'을 변경하지 않습니다. 'mess_around_with_matrix'의'm'은 main 안에'm'의 * copy *입니다. – dmckee