はい、私はこの質問と回答を読みました: Passing an array by reference in C? . 私は同様の問題を抱えており、その質問から同じアイデアを実装しました。
ただし、次のコードからまだエラーが発生します。
#include <iostream>
void FillArray(int** myArray)
{
free( *myArray ) ;
* myArray = (int*) malloc(sizeof(int) * 2);
*myArray[0] = 1;
*myArray[1] = 2;
}
int main()
{
int* myArray = NULL;
FillArray(& myArray);
return 0;
}
FillArray 関数が終了した直後に、次の実行時エラーが発生しました。
Program.exe 0xC00000005 の 0x773115de で未処理の例外: アクセス違反書き込み場所 0xcccccccccc。
私は Visual Studio を使用しており、Visual C++ の空のプロジェクトを開きました。そして、main.cpp という名前のファイル。CコンパイラではなくC++コンパイラでコンパイルされているということですか?その場合、C コンパイラのみでコンパイルされるファイルを開くにはどうすればよいですか? main.cpp の名前を main.c に変更しようとしましたが、それでも同じ問題が発生します。(「参照渡し」についていくつか読んで、CとC ++で異なることがわかったので、この質問をしています。)
この非常に基本的な質問で申し訳ありません。
私はどんな助けにも感謝します、
言った。