我正在尝试在函数中分配内存,但我不确定我做错了什么。我要这个:
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;
}
是否存在范围界定问题?我想既然我给它传递了一个指针,它将被分配,我将能够在初始化函数之外访问它。
谢谢你的帮助