c语言什么时候需要动态分配内存?

c语言什么时候需要动态分配内存?动态分配内存是什么意思?
分配堆的内存,程序冗杂需要释放那么有什么意义?
动态分配的参数是表示分配指定大小还是指定不超过该数值大小做到精确?
如果是做到精确,那么可以想象到这个函数的实现本身就较严重降低了程序效率,又有什么意思?
c语言线程问题?不动态分配有时引用数据类型的值被注销?不至于吧

    c语言什么时候需要动态分配内存?动态分配内存是什么意思?

    在运行期,无法提前确定内存需要多少时,动态分配内存。

    分配堆的内存,程序冗杂需要释放那么有什么意义?

    释放多余的内存,就是把内存归还给系统管理,防止占用内存过多,造成系统内存不够、速度慢甚至崩溃。

    动态分配的参数是表示分配指定大小还是指定不超过该数值大小做到精确?

    动态分配需要指定大小,因为分配内存必须精准。

    c语言线程问题?不动态分配有时引用数据类型的值被注销?不至于吧

    使用局部变量,在超出作用域后变量会失效或者说注销

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-03-21

你的问题比较多,建议你看一下这篇文章网页链接

局部变量存放在堆里,当函数返回,或者超出作用域,分配给局部变量的内存会被注销,考虑一个返回指针的函数,它指向一块内存,如果不动态分配内存,那么函数返回时该段内存被注销,在函数外通过指针访问这块内存会出错,动态分配的内存在函数退出或者超出作用域后不会自动注销,只要你有这块内存的地址,随时可以访问,也不会被分配给别的函数(数据)。那么就存在一个问题,当你频繁的动态分配内存而不释放,你的内存就会被消耗完,所以当你不在使用这块数据的时候需要手动释放掉这块内存。

追问

链接呢

本回答被提问者采纳
相似回答