0

なぜこれがうまくいかないのですか?コードを何度も見直しましたが、何が問題なのかわかりません。

ありがとう!

void generateData(float** inData, int x, int y){
    inData[0][0]= 3000.0; // SEGFAULT
}

float** createMatrix(int x, int y){
    float** array= malloc(sizeof(float*) * y);
    for(int i=0; i<y; i++)
        array[i] = malloc(sizeof(float) * x);
}

int main(int argc, char** argv) {
    float** arr = createMatrix(100,2);

    generateData(arr, 100, 2);

    return(0);
}
4

3 に答える 3

3

この非常に重要な行を忘れていました。

return array;

createMatrix。コンパイラの警告を確認するか、まだオンになっていない場合はオンにします。

于 2012-08-08T19:42:30.160 に答える
0

このスニペットがコードに直接関連しているかどうかはわかりませんが、createMatrix()からアドレスを返すことはありません。

于 2012-08-08T19:44:24.957 に答える