Struct的释放问题

贵生 2016-07-08 01:27:25
请问,函数体里定义的struct怎么释放?还是不需要特意释放?
...全文
402 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
贵生 2016-07-08
  • 打赏
  • 举报
回复
1 代码中是用Strcpy,这里仅为简单举例 2.正常线程退出是return,这里的TerminateThread用在此处是否不妥? 各位有没有好的内存泄漏的工具推荐一下?
lx624909677 2016-07-08
  • 打赏
  • 举报
回复
如果你是在调用了TerminateThread后,进程也跟着退出了,那这种情况下,操纵系统会负责释放
lx624909677 2016-07-08
  • 打赏
  • 举报
回复
1:字符串赋值要用strcpy把? 2:TerminateThread结束的线程并不会释放掉堆栈的使用,这个是为了让其他使用这个线程的程序能正常运行,不过要是想释放也可以,要用_endthreadex去释放
贵生 2016-07-08
  • 打赏
  • 举报
回复
我在h文件里声明一个struct,如

struct  A {
char name[8]
}
然后在cpp文件里定义


void Test(){
A a

a.name ="Jack" ;

}

这个test函数放在一个线程的while循环里,然后我使用TerminateThread来终结这个线程 这样会不会有内存泄漏?
shenyi0106 2016-07-08
  • 打赏
  • 举报
回复
1. 请理解 栈和堆 的区别 2. 请熟悉栈变量和堆变量(其实还有个全局变量,不过不在此讨论范围)的定义方式 3. 请牢记堆变量的的规则——谁用谁释放(关键是释放)
Eleven 2016-07-08
  • 打赏
  • 举报
回复
要看你是怎么使用的?
赵4老师 2016-07-08
  • 打赏
  • 举报
回复
无new,无delete 无malloc,无free
lx624909677 2016-07-08
  • 打赏
  • 举报
回复
如果是创建的结构体指针变量,并且使用了malloc或者new来开辟空间,那么就需要去手动释放,如果只是个结构体变量,那么开辟的存储空间在栈上,不需要去手动释放

16,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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