搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 结构体里嵌套一个结构体数组指针
标题:
结构体里嵌套一个结构体数组指针
只看楼主
lin5161678
等 级:
贵宾
威 望:
45
帖 子:1136
专家分:3729
注 册:2011-12-3
第
21
楼
得分:0
以下是引用
ditg
在2020-7-3 11:51:40的发言:
呵呵
没初始化 没赋值的指针 叫做野指针
版主和内核都给指针赋值
所以不是野指针 有什么问题
有什么意见请说出来讨论
阴阳怪气的呵呵 对学习没有帮助
并且显得你小肚鸡肠 没有端正的学习心态
https://zh.
2020-07-03 11:56
八画小子
等 级:
贵宾
威 望:
37
帖 子:705
专家分:2043
注 册:2010-11-11
第
22
楼
得分:0
野指针的问题,个人觉得和编码者的能力有很大的关系。在高内聚低耦合的模块化的前提下,如果编码者能力非常强,可以在逻辑上完全排除野指针产生的影响和BUG,那么,即便在代码中处处遗留野指针又能如何?
当然如果相关代码需要被他人使用,那么就需要做到严谨,不留一个野指针。
野指针的概念其实就是因为编码不严谨、逻辑不严密,然后为了降低BUG出现做的一致性处理。
当然,如何看代野指针,每个人都有自己的独到之处。不过,读百家之代码,吸取其精华及精妙之处,调自身之BUG,做到尽可能地提升自己地编码和逻辑能力,才是大家共识的王道。
2020-07-03 13:30
ditg
等 级:
贵宾
威 望:
16
帖 子:852
专家分:1937
注 册:2014-4-10
第
23
楼
得分:0
正常沟通交流没有问题,是非对错实在不愿评说……
梦想拥有一台龙芯3A-4000
2020-07-03 15:39
lin5161678
等 级:
贵宾
威 望:
45
帖 子:1136
专家分:3729
注 册:2011-12-3
第
24
楼
得分:0
以下是引用
ditg
在2020-7-3 15:39:23的发言:
正常沟通交流没有问题,是非对错实在不愿评说……
这个帖子的大部分回复是我在帮你解释野指针
正常沟通很成问题
坦白说 正常的话 根本不应该存在这段沟通
题主问 怎么访问
我说 野指针 不能访问
要么就不管我
要么就说哦
要么就帮题主解释一下怎么处理野指针的错误
这三种情况 你能正确理解野指针的时候的正常沟通
而不是说 谈不上野指针
https://zh.
2020-07-03 15:57
ditg
等 级:
贵宾
威 望:
16
帖 子:852
专家分:1937
注 册:2014-4-10
第
25
楼
得分:0
比如吧,楼主写的具体哪个地方是野指针?
梦想拥有一台龙芯3A-4000
2020-07-03 16:04
lin5161678
等 级:
贵宾
威 望:
45
帖 子:1136
专家分:3729
注 册:2011-12-3
第
26
楼
得分:0
以下是引用
ditg
在2020-7-3 16:04:50的发言:
比如吧,楼主写的具体哪个地方是野指针?
楼主定义了
MENU_s Top_Mode;
要访问
seat_s的成员
因为
Top_Mode.seat[0]
Top_Mode.seat[1]
Top_Mode.seat[2]
既没有初始化 也没有赋值
所以 这三个指针都是野指针
所以不能访问
seat_s的成员
所以咯 你直到现在还不知道我说的野指针在哪里
这不是沟通很有问题吗
https://zh.
2020-07-03 16:11
ditg
等 级:
贵宾
威 望:
16
帖 子:852
专家分:1937
注 册:2014-4-10
第
27
楼
得分:0
问“请教一下怎样访问seat_s这个结构体里边的每个成员,及
初始化
”,我觉得楼主在问“这个定义的结构体变量Top_Mode怎样初始化”
答:“那是野指针 不能访问 也
谈不上初始化
”
我认为:可以访问只是结果可能随机,因为
没有使用
(后面纯版写了个程序,执行过程中进行赋值),所以没有野指针的问题,换句话说,定义了一个指针变量,但是没有赋初值,是否就叫野指针?
梦想拥有一台龙芯3A-4000
2020-07-03 16:32
lin5161678
等 级:
贵宾
威 望:
45
帖 子:1136
专家分:3729
注 册:2011-12-3
第
28
楼
得分:0
以下是引用
ditg
在2020-7-3 16:32:45的发言:
问“请教一下怎样访问seat_s这个结构体里边的每个成员,及初始化”,我觉得楼主在问“这个定义的结构体变量Top_Mode怎样初始化”
答:“那是野指针 不能访问 也谈不上初始化”
我认为:可以访问只是结果可能随机,因为没有使用(后面纯版写了个程序,执行过程中进行赋值),所以没有野指针的问题,换句话说,定义了一个指针变量,但是没有赋初值,是否就叫野指针?
访问seat_s这个结构体里边的每个成员
你可能没有发现 这里有2个结构体类型
seat_s 和 MENU_s
楼主定义了一个 MENU_s变量 问的是
访问seat_s的成员
我不知道你误解了什么
对于楼主定义的MENU_s变量 没有创建seat_s 更谈不上访问seat_s是成员 创建的是3个seat_s的指针
不是可以访问但结果随机
你可以访问seat_s
但不能访问
seat_s的
成员
能理解这两个说法的区别吗
访问 seat_s
比如
Top_Mode.seat[0] = NULL;
这个做法是完全没问题的
但是访问 seat_s的成员指的是
Top_Mode.seat[0]->x = 0;
这是野指针操作 明白了吗
为什么这么简单的东西都需要我仔仔细细的解释
你就不能自己仔细看题好好理解吗
https://zh.
2020-07-03 16:43
ditg
等 级:
贵宾
威 望:
16
帖 子:852
专家分:1937
注 册:2014-4-10
第
29
楼
得分:0
楼主MENU_s Top_Mode; 时已经分配好内存了,所以纯版后面用代码进行赋值,再换一句话说,都能赋值了,前面不能初始化吗?还有上面又变野指针“操作”了,到底定义时叫野指针,还是“操作”使用时叫野指针,你到底在说啥?
梦想拥有一台龙芯3A-4000
2020-07-03 17:02
lin5161678
等 级:
贵宾
威 望:
45
帖 子:1136
专家分:3729
注 册:2011-12-3
第
30
楼
得分:0
以下是引用
ditg
在2020-7-3 17:02:57的发言:
楼主MENU_s Top_Mode; 时已经分配好内存了,所以纯版后面用代码进行赋值,再换一句话说,都能赋值了,前面不能初始化吗?还有上面又变野指针“操作”了,到底定义时叫野指针,还是“操作”使用时叫野指针,你到底在说啥?
定义了Top_Mode
写Top_Mode.seat[0] 没问题
读Top_Mode.seat[0] 是你说的结果可能随机
但楼主问的不是 读写Top_Mode.seat[0]
楼主问的是 读写Top_Mode.seat[0]
->x
这就是解引用野指针操作了
[此贴子已经被作者于2020-7-3 17:12编辑过]
https://zh.
2020-07-03 17:11
53
3/6页
1
2
3
4
5
6
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-502368-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.120146 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved