| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 9641 人关注过本帖
标题:结构体里嵌套一个结构体数组指针
只看楼主 加入收藏
八画小子
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:37
帖 子:709
专家分:2063
注 册:2010-11-11
收藏
得分:0 
程序代码:
typedef struct
{
    unsigned char x;
    unsigned char y;
    unsigned char mode;
    char  *str;
}seat_s;

typedef struct
{
    seat_s seat[3];
    unsigned char a;      
    unsigned char b;
}MENU_s;

MENU_s  Top_Mode;  


有的时候,这种会更好一些。
2020-07-03 10:22
ditg
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:16
帖 子:852
专家分:1937
注 册:2014-4-10
收藏
得分:0 

1. 就算是沟通问题吧

2. 并不是谁闲着没事干,linux早期内核在struct task_struct进程结构里就有,最新内核里也不少

#define NR_OPEN 20

struct task_struct {
    ......
    struct file *filp[NR_OPEN];
    ......
};

梦想拥有一台龙芯3A-4000
2020-07-03 10:56
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:0 
以下是引用ditg在2020-7-3 10:56:26的发言:


1. 就算是沟通问题吧

2. 并不是谁闲着没事干,linux早期内核在struct task_struct进程结构里就有,最新内核里也不少

#define NR_OPEN 20

struct task_struct {
    ......
    struct file *filp[NR_OPEN];
    ......
};

搞清楚 结构体里面有指针 和 用野指针是两回事

https://zh.
2020-07-03 11:17
ditg
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:16
帖 子:852
专家分:1937
注 册:2014-4-10
收藏
得分:0 
在使用过程中找不到指定地址,我认为叫野指针

梦想拥有一台龙芯3A-4000
2020-07-03 11:18
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:0 
以下是引用ditg在2020-7-3 11:18:46的发言:

在使用过程中找不到指定地址,我认为叫野指针

那么 内核里面 这个结构体里面的指针数组不存在使用的时候 找不到指定地址的情况
那么 内核里面 这个结构体里面的指针数组不是野指针
我这样说你能理解吗

内核里面的这个结构体和这个问题的区别是
MENU_s  Top_Mode;
这里定义了一个MENU_s类型的结构体变量并且没初始化 也没有给指针成员赋值
然后 题主就想要 访问seat_s这个结构体里边的每个成员

想要访问没初始化的指针 所以我说野指针

明白了没有
扯上内核也算是迷路了
感觉你一直不懂我在说什么

https://zh.
2020-07-03 11:29
ditg
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:16
帖 子:852
专家分:1937
注 册:2014-4-10
收藏
得分:0 

楼主才定义,还没使用呢,跟野不野没啥关系

梦想拥有一台龙芯3A-4000
2020-07-03 11:31
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:0 
以下是引用ditg在2020-7-3 11:31:37的发言:


楼主才定义,还没使用呢,跟野不野没啥关系

请教一下怎样访问seat_s这个结构体里边的每个成员,及初始化???
自行体会

https://zh.
2020-07-03 11:32
ditg
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:16
帖 子:852
专家分:1937
注 册:2014-4-10
收藏
得分:0 
前面有位版主大概示范了应用部分,虽然大家可能都不喜欢听,但源码里是通过另开一块内存数组,跟版主示范的临时分配差不多,这个是应用部分;

初始化部分可以自行查看进程0的#define

[此贴子已经被作者于2020-7-3 11:47编辑过]


梦想拥有一台龙芯3A-4000
2020-07-03 11:44
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:0 
以下是引用ditg在2020-7-3 11:44:18的发言:

前面有位版主大概示范了应用部分,虽然大家可能都不喜欢听,但源码里是通过另开一块内存数组,跟版主示范的临时分配差不多,这个是应用部分;

初始化部分可以自行查看进程0的#define

你描述的是 怎么解决野指针这个问题的具体操作
和我的说法没什么冲突

问题 怎么访问
我回答 因为是野指针所以无法访问
纯蓝之刃 可以通过分配一个空间给seat_s *seat[3];指针(即处理野指针的问题) 然后访问

你的理解需要提高 加油

https://zh.
2020-07-03 11:50
ditg
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:16
帖 子:852
专家分:1937
注 册:2014-4-10
收藏
得分:0 

呵呵

梦想拥有一台龙芯3A-4000
2020-07-03 11:51
快速回复:结构体里嵌套一个结构体数组指针
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.045465 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved