C++:new和delete结构体问题

好大的压力 2016-08-04 10:19:43
假设有三个文件,分别为main.c,IRSend.c,IRSend.h
IRSend.h内容为:
class IRSend
{
public:
void a();
void b();
void c();
};
IRSend.c内容为:
#include"IRSend.h"
typedef struct {
int d;
int e;
int f;
} hh;
volatile hh *h;
void IRSend::a()
{
h=new volatile hh;
}
void IRSend::b()
{
delete h;
}
void IRSend::c()
{
h->d=1;
h->e=2;
h->f=3;
}
main.c内容为:
#include"IRSend.h"
IRSendR IR;
void main()
{
while(1)
{
IR.a();//new结构体
IR.c();
IR.b();//delete结构体
}
}
请问上面new结构体和delete结构体有问题吗?(我的程序类似于上面)
为什么执行后编译能通过,就是得不到想要的效果。
...全文
611 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sevancheng 2016-08-04
  • 打赏
  • 举报
回复
void IRSend::a() { h=new volatile hh; } 去掉volatile
paschen 版主 2016-08-04
  • 打赏
  • 举报
回复
IRSendR IR; 改成 IRSend IR;
引用 4 楼 horizons_kong 的回复:
[quote=引用 3 楼 paschen 的回复:] IRSendR IR; 改成 IRSend IR; 其他没什么问题,楼主想得到什么结果
不是这个的问题~这个是我自己打错了。我主要想问下我new和delete结构体的用法对不对[/quote] 没问题
lm_whales 2016-08-04
  • 打赏
  • 举报
回复
volatile 这个不需要写
好大的压力 2016-08-04
  • 打赏
  • 举报
回复
引用 3 楼 paschen 的回复:
IRSendR IR; 改成 IRSend IR; 其他没什么问题,楼主想得到什么结果
不是这个的问题~这个是我自己打错了。我主要想问下我new和delete结构体的用法对不对
paschen 版主 2016-08-04
  • 打赏
  • 举报
回复
IRSendR IR; 改成 IRSend IR; 其他没什么问题,楼主想得到什么结果
好大的压力 2016-08-04
  • 打赏
  • 举报
回复
引用 1 楼 lianshaohua 的回复:
.c的文件中写C++代码? 用什么编译?
写错了。。。是.cpp后缀
ztenv 版主 2016-08-04
  • 打赏
  • 举报
回复
.c的文件中写C++代码? 用什么编译?

64,636

社区成员

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

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