horizons_kong
kongweican
采纳率100%
2016-08-03 13:56 阅读 1.6k
已采纳

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

假设有如下几个文件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。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

5条回答 默认 最新

  • 已采纳
    John_ToStr John_ToDebug 2016-08-03 15:18

    头文件里面一般放什么: 主要是类的定义,以及对象或者函数的声明。 而你的函数实现体应该放在源文件里面,包括你的new语句,然后在源文件
    里面new跟delete就可以了...你的这种编程思路有问题

    点赞 评论 复制链接分享
  • caozhy 从今以后生命中的每一秒都属于我爱的人 2016-08-03 14:02

    全局变量,其实释放不释放都一样。非要写,可以写在main函数最后

    点赞 评论 复制链接分享
  • pc0de pc0de 2016-08-03 14:03

    在何处new就在何处delete

    点赞 评论 复制链接分享
  • oyljerry oyljerry 2016-08-03 14:04

    当你不需要的时候就delete

    点赞 评论 复制链接分享
  • John_ToStr John_ToDebug 2016-08-03 15:08

    编程是一门艺术, 如果你是想用这个例子考考别人而说明你很有心, 否则你还没有真正的入门...

    点赞 评论 复制链接分享

相关推荐