関数にメモリを割り当てようとしていますが、何が間違っているのかわかりません。これ欲しい:
int main()
{
int* test= 0;
initialize(test, 10);
int test2 = test[2];
delete[] test;
}
void initialize(int* test, int count)
{
test = new int[count];
for (int i = 0; i < count; i++)
{
test[i] = i;
}
}
しかし、次のエラーが表示されます: Robust Simulation.exe の 0x770d15de で未処理の例外: 0xC0000005: アクセス違反の読み取り場所 0x00000008。次の行で中断します: int test2 = test[2];
しかし、これは機能します:
int main()
{
int* test=0;
test = new int[10];
for (int i = 0; i < 10; i++)
{
test[i] = i;
}
int test2 = test[2];
delete[] test;
}
スコーピングの問題はありますか?ポインターを渡すと割り当てられ、初期化関数の外でアクセスできると思いました。
ご協力いただきありがとうございます