在类中初始化结构变量成员会导致分割错误
Initializing structure variable members in class gives segmentation fault
是的,我知道这是一堆重复的问题,但我已经做了几个小时了,没有任何问题。
我想做的就是在类定义中初始化一些私有变量。
结构如下:
#include <string>
using namespace std;
typedef string DataType;
class Slist {
public:
private:
// private data type: Node
struct Node {
DataType data;
Node *next;
};
// state variables:
Node *head, *tail, *cursor;
};
我像这样初始化它们:
Slist::Slist (void) {
cursor -> data = 'n';
cursor -> next = new Node;
这给了我一个分割错误。我知道这意味着我正在尝试访问不存在的内存,但是尽管这些是私有变量,我还是试图在列表构造函数中访问它们,这当然可以访问它们。如果有人能告诉我是怎么回事,我将非常感激。
未初始化指针或将指针赋值给内存位置。任何指针都需要有效的内存位置才能使用。
你可以做
cursor = new Node;
在使用箭头操作符之前
相关文章:
- C++映射分割错误(核心转储)
- 由cin中的字符串中未捕获空白引起的分割错误
- 删除映射和分割错误中的一个过去结束元素
- 在指向函数中读取变量时出现分割错误
- 在链表中的第 n 位插入显示分割错误
- 较高值 n 的分割错误(例如 n=999997)
- 尝试通过memcpy复制大尺寸浮点向量时的分割错误
- 分割错误:向量中的擦除功能
- 向量向量的分割错误
- 我在C++中编写了一个方法来打印树类的预序,但它显示了分割错误
- C ++分割错误,为什么使用"long long"我没有得到答案?
- 在尝试使用递归查找集合子集的总数时,我遇到了分割错误
- 分割错误 11:尝试使用 cin 输入 B[1] 时
- 集合布局上的 Qt 分割错误
- 高达20亿的筛子会产生分割错误
- 对向量使用推回函数时的分割错误
- 绘制精灵会导致分割错误
- 将矢量的整数内容打印为字符串会导致分割错误
- 分割错误:使用向量时为 11 c++
- 结构的分割错误错误