繁体   English   中英

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

[英]Why can't I set values of data for a pointer pointing to 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;

但是我认为这将覆盖数据存储。 我的实现有什么问题吗? 如果我只想设置其数据,该将其指向何处?

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

分配您的面具,然后使用它:

n->masks[i] = new avail;

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM