C++:new结构体释放问题

C++语言 码拜 8年前 (2016-06-02) 2300次浏览
假设有如下几个文件main.c,IRSend.c, IRSend.h
在IRSend.h中定义如下:
typedef struct {
int recvpin;
int rcvstate;
int timer;
} irparams_t;
extern volatile irparams_t *irparams;
在IRSend.c中定义如下:
#include “IRSend.h”
volatile irparams_t *irparams=new volatile irparams_t;
void a()
{
irparams->recvpin=1;
}
void b()
{
irparams->rcvstate=2;
}
void c()
{
irparams->timer=2;
}
在main.c中定义如下:
#include “IRSend.h”
void main()
{
a();
b();
c();
}
问一下应在哪个地方delete irparams。
解决方案

10

main函数内末尾

10

void main()
{
a();
b();
c();
//在这里delete吧
}

20

你可以考虑在类的析构函数中释放内存

20

引用:
Quote: 引用:

你可以考虑在类的析构函数中释放内存

怎么在析构函数里释放内存。怎么改

再封装一层,或题主直接使用智能指针


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明C++:new结构体释放问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)