c++指针指向结构体的一个节点为什么还是说是空指针
答案:2 悬赏:10 手机版
解决时间 2021-04-10 14:58
- 提问者网友:不爱我么
- 2021-04-10 09:37
c++指针指向结构体的一个节点为什么还是说是空指针
最佳答案
- 五星知识达人网友:我住北渡口
- 2021-04-10 10:55
贴出来代码看看。
全部回答
- 1楼网友:蕴藏春秋
- 2021-04-10 11:22
”不知道结构体具体定义“是指没有对应头文件吗?
如果是这样的话,没有办法把一个opaque的实例通过指针进行直接访问,除非提供这个结构体定义的库同时提供了对应的api操作例如拷贝、修改之类的。之所以如此,可能设计时有意保留了对于结构体变化的灵活性。例如需要增添一个新的member(int z) 时,对客户代码没有影响。
其他一切hackary手段来实现这个目的都可能会导致库升级时代码出现未定义行为。
如果有定义,只是不想要一个个赋值来就简单多了。
pld的struct应该有默认的构造函数,你试一下
message ms1(*ms);
或者
message ms1 = *ms;
默认情况下是浅复制,纯值问题不大,但里面有指针时候情况就很复杂了,需要避免对ms1的操作影响ms指针指向的内容,编译器碰到这种情况一般也会waring。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯