一般来说,我对编程比较陌生,我正在尝试编写一些代码来处理方阵。不幸的是,我在开发的早期就被困住了,因为代码
typedef struct Matrix_t{
float** content;
size_t size;
} Matrix_t;
int main(int argc, char** argv) {
Matrix_t* matr;
initMatrix(matr,s);
/*
...
...
...
*/
return 0;
}
void initMatrix(Matrix_t* m, size_t s) {
int i;
m = (Matrix_t*) malloc(sizeof(Matrix_t));
m->content = (float**) malloc(s*sizeof(float*));
for(i=0;i<s;i++){
m->content[i] = (float*) malloc(s*sizeof(float));
}
m->size = s;
}
SIGSEGV 会在 initMatrix() 完成后立即执行。使用调试器,我发现在 initMatrix() 关闭后基本上所有矩阵信息都丢失了。为什么?我该如何解决?
提前致谢。