c语言 内存释放和定义的问题

图片说明

进程都结束了,没有泄露了

前面的*maclloc() 有什么作用呢?

malloc是没有必要的
不会有内存泄漏,malloc申请的内存如果不手动释放的话会在进程结束后由系统释放

malloc()的返回类型为void *。
前面的char *malloc() 相当于局部声明malloc()的返回值为char类型指针,等价于强制转换吧,我的理解。

第一个我觉得不是必要,也许是有助于理解,第二个当程序结束所有内存就都释放了,不会有内存占用。

*malloc() 一点用处都有没有,原因如下:
(1)如果你是定义变量的话,那么,你在后面跟本就是没有使用它
(2)会产生歧义,因为系统中有malloc()这个函数,你所定义的这个变量的名字和系统中的函数名字是一样的,在某些时候会产生歧义的.
exit(1) 会导致内存泄漏吗?
(1)你自己看看,如果条件成立的话,就是说进入了if 语句之后,就说明 申请的 r它是一个空的地址 ,是不占用内存的, 何来的 "内存泄漏"?
(2)你自己再看看 你的malloc里面的, 我就想说 你的 字符串 能定义出多大的那 , malloc申请的堆区内存是很大的 ,可以达到上百兆的 ,你认为 你申请的字符串
达到了吗?除非说实在一些 大的程序之下,而且申请了大量的内存之下,才会出现 内存泄漏的情况 ,他与不是 像 栈区内存(小) ,