[讨论] 动态内存配置是不是常常会出问题啊

楼主: jasonokc0220 (天气晴)   2021-12-05 16:16:36
有时候同一个程式码明明前一分钟刚跑完都没问题,偶尔关掉之后再跑一次就会出现0xc0
000364的错误,过一阵子再重跑又没问题了
上网查了一下好像有人说是编译器的问题,但我换了别的编译器也都是有同样的问题,有
人有这方面的经验或是实用的方法吗,虽然说等一阵子莫名又可以跑了,但这种不知何时
会产生的问题还是很让人不安QQ
作者: ko27tye (好滋好滋)   2021-12-05 16:21:00
这种问题通常是你变量没初始化 建议你还是贴code上来问
作者: TWkobe (中华柯比)   2021-12-05 16:22:00
会不会哪些地方忘了free, 用valgrind检查有没有leak?
作者: Schottky (顺风相送)   2021-12-05 16:27:00
基本上都是自己的问题居多而且自己会出的包也不限于动态还是静态配置
作者: nh60211as   2021-12-05 16:28:00
程式码写错
楼主: jasonokc0220 (天气晴)   2021-12-05 16:49:00
感觉有可能是空间没释放掉而堆叠摧毁
作者: lc85301 (pomelocandy)   2021-12-05 17:54:00
你的问题应该是写了那个吧
作者: firejox (Tangent)   2021-12-05 18:25:00
所以我说那个程式码呢
作者: b0920075 (Void)   2021-12-05 19:42:00
建议直接把所有检测内存错误的选项打开
作者: newking761 (J三小)   2021-12-05 23:21:00
为什么不先质疑你的code??
作者: Lipraxde (Lipraxde)   2021-12-06 11:21:00
动态内存要自己的管理 lifecycles,比较容易出错XD
作者: peter98 (新兵)   2021-12-06 12:29:00
动态内存常错(X) 写的动态内存常错(O)
作者: sa074463 (垒包)   2021-12-06 12:53:00
我比较相信是自己写错
作者: F04E (Fujitsu)   2021-12-06 13:40:00
呵呵 没code是要人家掷杯腻
作者: f953024 (=.=a)   2021-12-06 23:10:00
你有想过你到底真正在追求什么呢
作者: cuteSquirrel (松鼠)   2021-12-07 14:36:00
检查内存管理的部分...
作者: james732 (好人超)   2021-12-07 21:13:00
只要分配不要释放写起来就会轻松很多喔 (X)
作者: descent (“雄辩是银,沉默是金”)   2021-12-07 23:14:00
编译器通常是最后才需要怀疑, 一般都是程式有错这种问题当然不安, 所以要找出根本问题, 修正后会很爽
作者: chchwy (mat)   2021-12-09 10:01:00
动态内存"比较容易写错" 错的是写的人 不是这个机制本身
作者: alan23273850   2021-12-09 10:07:00
是你常出问题 不是动态内存配置常出问题 懂?
作者: IhateOGC (我讨厌)   2021-12-10 08:24:00
作者: suhorng ( )   2021-12-10 17:30:00
各个 sanitizer 还有 warning 都开一开方便除错
作者: disabledman (m.m.)   2021-12-11 11:44:00
仔细看CODE,确定自己真的了解来龙去派。
作者: qwerasdf6102 (eat_centrum)   2021-12-12 11:59:00
就是因为这样 才有智慧指标这种东西
作者: Raymond0710 (雷门)   2021-12-12 13:15:00
就一定bug
作者: chaos1993 (栈前小二)   2021-12-16 18:41:00
请先质疑你的code有没有好好做到内存控管
作者: Killercat (杀人猫™)   2021-12-21 12:17:00
跑embedded吗?如果是real mode的话应该满常见的...
作者: ManOfSteel (Man Of Steel)   2021-12-23 00:02:00
请问一下K大为什么embedded的real mode会很常见呢?
作者: h0677870105 (两个人一起)   2021-12-25 00:29:00
结果发现可以Double free XD
作者: negogoro (尼勾勾肉)   2021-12-26 00:26:00
你有delete或free吗
作者: friends29 (凉哥哥)   2021-12-26 08:36:00
c++的话 懒人就多用std smart pointer吧
作者: GankTw (GankTw)   2021-12-30 01:21:00
用valgrind 跑看看
作者: whatai (多多)   2021-12-30 17:45:00
embedded system 内存太小 32M RAM 算是高规格了大量的动态内存分配可能导致内存破碎
作者: iwtwin086051 (E_Sung)   2020-01-01 00:42:00
我刚开始写程式也是常常觉得程式语言有问题但是至今还没对过一次
作者: closer76 (克楼瑟)   2020-01-04 13:20:00
32MB... 我现在的案子,能给我 32KB 做梦都要偷笑了 XD
作者: Killercat (杀人猫™)   2020-01-08 08:51:00
32M至少有protected mode啦.... real mode还有写不好的程式直接偷盖你写入的内存... -_-;所以回答一下上面:所以real mode满常见这种妖魔鬼怪
作者: henrylin8086 (小木)   2020-01-13 11:47:00
你要不要用smart pointer啊......程式是照你写的跑,而不是照你想的跑。
作者: howareuuu   2020-01-25 19:08:00
Smart pointer
作者: dzwei (Cout<< *p << \n ;)   2020-02-21 18:57:00
其实,smart pointer也是有些东西要注意比方说 cycler shared poonter
作者: dreamroad (...)   2020-04-01 21:40:00
你没有厉害到写出会让compiler出错的code ,通常都是自己的问题

Links booklink

Contact Us: admin [ a t ] ucptt.com