私は一般的にプログラミングに比較的慣れていないので、正方行列を扱うコードを書こうとしています。残念ながら、私は開発の非常に早い段階で立ち往生しています。
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;
}
initMatrix() が完了した直後に SIGSEGV になります。デバッガーを使用して、initMatrix() を閉じた後、基本的にすべてのマトリックス情報が失われることがわかりました。それはなぜです?どうすれば修正できますか?
前もって感謝します。