新手求助结构体指针问题

coaspire 2015-04-26 10:05:29
我定义了两个结构体,对它们进行了内存分配,却不知道如何对应回收,可否请教?

typedef struct Base
{
int a, b, c;
}Base;
typedef struct Sub
{
int a, b, c, d;
char *str;
}Sub;

int main()
{
Base *b;
Sub *s;
b = new Base;
s = (Sub*)b;
s->str = new char[100];

return 0;
}
...全文
261 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
一根烂笔头 2015-04-27
  • 打赏
  • 举报
回复
不兼容强转,会有意外发生
tangtangtangbaoli 2015-04-27
  • 打赏
  • 举报
回复
b = new Base; s = (Sub*)b; 这样写有错误,编译器对赋值语言转换成机器指令的时候,只是b的内存空间有效,s根本没用有效的内存空间
赵4老师 2015-04-27
  • 打赏
  • 举报
回复
Sub和Base的内存布局不兼容,无法强制类型转换。
此后三年 2015-04-27
  • 打赏
  • 举报
回复
都是在你程序中最后一次使用这个变量之后就立即释放。 如果是c++中,那么可以写析构函数释str的资源,c的话就要手动free
Minikinfish 2015-04-27
  • 打赏
  • 举报
回复
楼主你真的很可怜,我都不知道该怎么回答你的问题了。

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧