社区
C语言
帖子详情
指针和内存的问题
ksyou
2003-04-04 10:22:32
在头文件中定义了结构,
strcut _ip{
.......
}iphdr;
strcut _msg{
iphdr *myiphdr;
.....
.....
}msg;
然后使用了该结构的指针:
msg *hmsg;
我在程序中使用 hmsg->myiphdr->(iphdr结构元素)
当程序运行一段时间后,就会出现myiphdr里面的元素不能读出的错误!
请问:如何解决?定给高分!
...全文
97
22
打赏
收藏
指针和内存的问题
在头文件中定义了结构, strcut _ip{ ....... }iphdr; strcut _msg{ iphdr *myiphdr; ..... ..... }msg; 然后使用了该结构的指针: msg *hmsg; 我在程序中使用 hmsg->myiphdr->(iphdr结构元素) 当程序运行一段时间后,就会出现myiphdr里面的元素不能读出的错误! 请问:如何解决?定给高分!
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
22 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
allen_zhaozhencn
2003-04-04
打赏
举报
回复
仔细检查以下几个方面:
1、内存空间已经分配
2、内存用完之后释放 , 并及时将指针值改为NULL, 杜绝野指针。
3、及时回收空间。
allen_zhaozhencn
2003-04-04
打赏
举报
回复
你把你的代码贴上来。
maurice1983
2003-04-04
打赏
举报
回复
hmsg.myiphdr->(iphdr结构元素)
liem
2003-04-04
打赏
举报
回复
检查一下_ip里是否还有指针。通常对每一个指针都要有确定的指向,暂时不用可以指向NULL
否则根据lulu的,可以编译,执行
ksyou
2003-04-04
打赏
举报
回复
我的代码太多了,不好贴啊
prettynacl
2003-04-04
打赏
举报
回复
一样的问题?
明明可以编译,执行。
要不你把你的代码贴上来。
ksyou
2003-04-04
打赏
举报
回复
还是一样的问题
prettynacl
2003-04-04
打赏
举报
回复
分配了也没有用,还是一样的错误?
是怎么样分配的?
是这样吗:
先要加上:typedef:
typedef strcut _ip{
.......
}iphdr;
typedef strcut _msg{
iphdr *myiphdr;
.....
.....
}msg;
msg *hmsg;
hmsg = (msg *) malloc(sizeof( msg));
hmsg->myiphdr = (iphdr *) malloc(sizeof(iphdr ));
然后再使用应该没问题了。
zanglan
2003-04-04
打赏
举报
回复
为hmsg分配内存后,myiphdr还要再分配内存,除非你吧msg定义改成
strcut _msg{
iphdr myiphdr;
.....
.....
}msg;
tinytot
2003-04-04
打赏
举报
回复
iphdr *myiphdr;是hmsg的一个元素,我给hmsg分配了内存,应该不需要再为myiphdr分配内存了吧?
------------------------------------------
myiphdr只是一个指针变量, 如果它没有指向一个分配的内存块, 那你是不能访问它的内容的.
woxihuanbohe
2003-04-04
打赏
举报
回复
strcut _ip{//拼写有误 下同 struct
.......
}iphdr;
strcut _msg{//这里好象要用typedef吧?如果你讨厌写_msg;
iphdr *myiphdr;//iphdr是个变量,不是自定义类型!下msg同
.....
.....
}msg;
然后使用了该结构的指针:
msg *hmsg;//msg不是类型,是个变量,可以用一个变量声明另外一个变量?
我在程序中使用 hmsg->myiphdr->(iphdr结构元素)
当程序运行一段时间后,就会出现myiphdr里面的元素不能读出的错误!
luohualiushui
2003-04-04
打赏
举报
回复
没有道理啊
可能是错误出在其他地方了
Jinglihui
2003-04-04
打赏
举报
回复
代码都没有,谁知道你怎么用的啊?贴出相关代码
ksyou
2003-04-04
打赏
举报
回复
分配了也没有用,还是一样的错误
这个错误困扰我好多天了,一直的不到解决,还请高人多多指导
Jinhao
2003-04-04
打赏
举报
回复
iphdr *myiphdr;没有对象,没有分配空间
ksyou
2003-04-04
打赏
举报
回复
iphdr *myiphdr;是hmsg的一个元素,我给hmsg分配了内存,应该不需要再为myiphdr分配内存了吧?
prettynacl
2003-04-04
打赏
举报
回复
输出hmsg->myiphdr的值。看看与当初分配时是一致的吗?
liushmh
2003-04-04
打赏
举报
回复
iphdr *myiphdr;
没有分配内存
ksyou
2003-04-04
打赏
举报
回复
我在程序中用malloc为hmsg分配了内存并初始化了
Bandry
2003-04-04
打赏
举报
回复
#include <stdio.h>
#include <stdlib.h>
typedef struct _ip {
int i1;
int i2;
int i3;
int i4;
}iphdr;
typedef struct _msg{
iphdr* myiphdr;
char* szmsg;
}msg;
void main()
{
msg* pmsg;
pmsg = (msg *)malloc(sizeof(msg));
pmsg->myiphdr = (iphdr *)malloc(sizeof(iphdr));
pmsg->myiphdr->i1 = 255;
pmsg->myiphdr->i2 = 255;
pmsg->myiphdr->i3 = 255;
pmsg->myiphdr->i4 = 0;
pmsg->szmsg = (char *)malloc(100 * sizeof(char));
pmsg->szmsg = "ip message description";
printf("\nIP: %d.%d.%d.%d\n", pmsg->myiphdr->i1,
pmsg->myiphdr->i2, pmsg->myiphdr->i3, pmsg->myiphdr->i4);
printf("\nIP Description: %s\n\n", pmsg->szmsg);
}
肯定不会有问题。
估计是你其他的地方错误
加载更多回复(2)
【C++ 高频面试题】
指针
和引用、关于
内存
泄漏和野
指针
问题
🐧①静态变量、全局变量、局部变量;🐧②
指针
和引用的区别;🐧③
内存
泄漏和野
指针
问题
;🖊
C语言中的
指针
和
内存
泄漏
问题
C语言中的
指针
和
内存
泄漏 导致
内存
破坏的
指针
操作类型
指针
赋值 复制
内存
区域
内存
覆盖 使用动态
内存
必须考虑的检查点 未初始化的
内存
使用malloc函数申请的
内存
空间,没有初始化就直接通过
指针
访问,这时候
内存
空间中可能有的垃圾值会被使用,程序动向不可预测。因此应该结合memset使用,申请空间后第一时间调用memset函数进行初始化。
内存
覆盖 指向一块
内存
区...
C++中的野
指针
和
内存
泄漏
问题
文章目录野
指针
问题
什么是野
指针
野
指针
问题
成因
内存
泄漏智能
指针
野
指针
问题
什么是野
指针
在c++中,使用
指针
是需要解引用去访问一块
内存
地址的。当一个
指针
变量指向的地址是非法地址时,就会出现野
指针
问题
。一般我们在写代码的时候,会对
指针
变量有一个判空处理,但是对于野
指针
时,是不会被 ‘ ptr == nullptr ’ 中识别出来的。会导致在接下来的代码逻辑中,造成非法访问,异常,导致进程崩溃退出等等的
问题
。 野
指针
问题
成因 野
指针
问题
也是一个在实际代码工作中很常见的一个
问题
,也会不同的情况导致野
指针
问题
出现:
c语言中
指针
往
内存
写值,C语言编程常见
问题
解答之
指针
和
内存
分配
指针
为C语言编程提供了强大的支持——如果你能正确而灵活地利用
指针
,你就可以直接切入
问题
的核心,或者将程序分割成一个个片断。一个很好地利用了
指针
的程序会非常高效、简洁和精致。利用
指针
你可以将数据写入
内存
中的任意位置,但是,一旦你的程序中有一个野
指针
("wild”pointer),即指向一个错误位置的
指针
,你的数据就危险了——存放在堆中的数据可能会被破坏,用来管理堆的数据结构也可能会被破坏,甚至操作系...
[转载4]
指针
和
内存
的
问题
关于
指针
和
内存
的几个
问题
一、"delete p" 会删去 "p"
指针
,还是它指到的资料,"*p" ? 该
指针
指到的资料。"delete" 真正的意思是:「删去
指针
指到的东西」(delete the thing pointed to by)。同样的英文误用也发生在 C 语言的「释放」指标所指向的记忆体("free(p)"真正的意思是:"free_the_stuff_pointed_to_by
C语言
70,040
社区成员
243,237
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章