为什么我不能为指向 null 的指针设置数据值


struct avail
{
int value;
uint64_t y[8][5];
avail **masks;
};
avail *n = new avail;
n->masks = new avail*[48];

现在说我必须设置n->masks[i]->y[1][3]=0x000000000000000F的一些数据

如果我做为什么不能这样做

n->masks[i]=NULL;

我不想要任何类似链表的层次结构。我得到一个错误nullptr。如果我不设置指针,我得到Access Violation。如果我不想使用它的"链接"来创建任何树/层次结构,我应该把这个指针指向哪里。

这只适用于我设置的情况

n->masks[i]=n;

但我认为这将覆盖数据存储。我的实现有什么问题吗?如果我只想设置它的数据,我应该把它指向哪里?

因为如果指针为null,则指向无法写入的地址。您可以始终写入已分配的地址,堆栈或堆。

分配口罩,然后使用:

n->masks[i] = new avail;

但不要忘记删除已分配的对象。似乎masks应该是std::vector<std::unique_ptr<avail>>

最新更新