在 C++ 中使用指针初始化结构成员
initialize structure members using pointer in c++
我正在编写一个简单的 C++ 代码,以便在代码块中使用 G++ 初始化结构的成员。 以下代码编译时没有任何错误或警告,但是当我运行代码时,我收到错误
尝试.exe已停止工作。
我认为当我为整数成员 val 赋值时会出现问题。
#include<iostream>
struct node{
int val;
node *next;
}*head;
int main(){
head->val=10;
std::cout<<head->val;
return 0;
}
head
是一个未初始化的指针。 它指向的位置未定义,但代码可能无法写入,当您尝试在行head->val=10;
中写入它时会导致崩溃
要解决此问题,您需要为head
分配内存
head = new node();
head->val=10;
....
delete head;
或者,您实际上不需要示例中的指针
struct node{
int val;
node *next;
}head;
int main(){
head.val=10;
std::cout<<head.val;
相关文章:
- 在C和C++中初始化结构中的数组
- 我们可以用参数化构造函数初始化结构的数组吗?
- 尝试初始化结构内的联合时出错
- 使用其他成员初始化结构的成员?
- 使用构造函数初始化结构还是在之后设置其值更好?
- 如果不初始化结构中的向量,它会自动为空还是具有随机内存位置的值?
- 如何在另一个结构中初始化结构数组?
- 如何在构造函数中初始化结构体的动态数组?
- 初始化结构中的联合 - c++
- 尝试初始化结构向量时出现编译错误
- 用于初始化结构的 void 指针强制转换
- 初始化结构的两种方式
- 使用用户定义的构造函数初始化C++结构
- 使用初始值设定项列表初始化结构,对于 std::array 失败
- 在 c++ 中初始化结构的指针
- 无序列图会创建一个零初始化结构吗?
- 如何在C++中初始化结构
- C 用结构指针初始化结构
- 在C 中初始化结构数组
- 使用数组聚合初始化结构数组