社区
C++ 语言
帖子详情
给初始化为NULL的结构体指针赋值报错问题
Castiellee929
2019-03-30 09:13:32
这里为什么会报这个错误呀
...全文
1253
5
打赏
收藏
给初始化为NULL的结构体指针赋值报错问题
这里为什么会报这个错误呀
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
CH_GOGO
2019-03-31
打赏
举报
回复
tmp是NULL的时候,指向安全区域,你解引用就会错误。你申请空间时,因为tmp指向堆空间的申请的区域,是可以解引用的。还有如果你不给申请的指针赋值,然后解引用的话,因为指针指向的是未知区域,也是危险的,回错误。要解引用一个指针,首先指针不能指向安全区域了,然后还不能是指向未知区域。
@风轻云淡_
2019-03-30
打赏
举报
回复
搜索一下空指针、野指针相关知识,指针在C语言中的地位是重中之重,在C++中也是不可或缺的。
奚晓华
2019-03-30
打赏
举报
回复
tmp指向null,使用*tmp就会报错,因为这代表要去0的地址取数据,0地址是不允许访问的,所以会报错,换成malloc后,系统会分配可使用的地址给tmp,所以*tmp就不会报错
Castiellee929
2019-03-30
打赏
举报
回复
将
Teacher *tmp = NULL;
改为
Teacher *tmp = (struct Teacher *)malloc(sizeof(struct Teacher));
就不会报错了
但是不知道为啥。
而且
在除了主函数之外的函数体中,定义的结构体变量和结构体指针变量都必须得赋值,否者会报错。
求大佬解答
奚晓华
2019-03-30
打赏
举报
回复
tmp是null,不能使用*tmp,建议tmp声明为Teacher tmp,下面的*tmp都变为tmp即可
C语言--结构体成员指针变量与
结构体指针
变量的区别
博客围绕C语言中指针的内存分配展开,以二叉树遍历算法为例,指出左子树和右子树的
结构体指针
需
初始化
,不能仅
赋值
而不分配内存。强调只要是指针,使用前都要保证值有效,且为
结构体指针
和成员指针分配内存都很重要。
c语言结构体学习整理(结构体
初始化
,
结构体指针
)
本文深入探讨C语言中的结构体,包括结构体的定义、
初始化
、引用及与指针的结合使用。解析结构体数组、成员偏移量、内存对齐等
问题
,以及结构体在函数参数中的传递方式。
c语言结构体学习整理(结构体
初始化
,
结构体指针
)_c++ 结构体中分配了指针,
初始化
结构体
本文围绕C语言结构体展开,介绍了使用结构体的原因,如管理学生信息时可将不同类型数据组合。还阐述了结构体的定义、存储、
初始化
、引用等知识,包括结构体变量和数组的
初始化
方法及注意事项,以及结构体与指针的使用。
关于指针结构体的
初始化
本文介绍了在C语言环境下,
初始化
循环链表时遇到的
问题
及解决方法。在VS中,尝试直接通过
结构体指针
初始化
结构体导致错误,正确做法是使用malloc分配内存并逐个设置节点的值。同时,全局变量不能在常量表达式中使用malloc。文章通过示例代码展示了如何正确创建并
初始化
链表节点,包括检查内存分配是否成功,以及如何构建循环链表。最后,给出了判断链表是否有环的hasCycle函数实现。
C语言中,指针在什么情况下为
NULL
(0)?
本文探讨了C语言中指针在不同情况下的初始状态,包括main函数、全局变量、结构体内的指针。强调了未
初始化
的指针可能含有随机值,可能导致程序崩溃。建议每次定义指针时
初始化
为
NULL
,以避免当作已分配内存的指针使用。
C++ 语言
65,211
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章