这是我的程序代码:
#include <iostream>
using namespace std;
int main()
{
int** a = new int*[10];
for (size_t i = 0; i < 10; i++)
{
a[i] = nullptr;
}
for (size_t i = 0; i < 10; i++)
{
*a[i] = i; //<========== на этом этапе ошибка
}
for (size_t i = 0; i < 10; i++)
{
cout << *a[i] << ' ';
}
}
程序抛出异常:Вызвано исключение по адресу 0x00B425AC в Main.exe: 0xC0000005: нарушение прав доступа при записи по адресу 0x00000000.
为什么会这样?毕竟,我取消引用第 i 个指针并为其赋值,但理论上应该是正常的。
鉴于我需要留下一个指针数组,我该如何解决这个问题。
为什么不想在一个循环中执行所有内容?
我试图将值指向的指针
nullptr,即无处。在这无处可去的地方,我试图分配一个值。所以你只需要为这个值分配内存。我的问题的解决方案代码: