在C语言中,如何给函数分配内存?
4个回答
展开全部
函数的变量、形参是放在栈内存里面,函数返回之后,这部分内存就释放了。
用malloc申请的内存在堆上,和上面的不同,函数返回的时候不会自动释放,所以在free之前,只要知道其地址,都可以使用。
用malloc申请的内存在堆上,和上面的不同,函数返回的时候不会自动释放,所以在free之前,只要知道其地址,都可以使用。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的理解很正确。对exe来说,编译完之后,函数的地址空间就已经确定了。实际的内存分配发生在模块被加载的时候(即你运行这个程序的时候)。
对于动态连接库(就是DLL)来说,稍微有点区别。如果模块之间发生地址冲突,操作系统会对dll里的函数地址重定位。
对于动态连接库(就是DLL)来说,稍微有点区别。如果模块之间发生地址冲突,操作系统会对dll里的函数地址重定位。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
函数原型void
*malloc
(long
numbytes)
举例:创建100个字节的内存大小
char
*buffer
=
(char*)malloc(100);
*malloc
(long
numbytes)
举例:创建100个字节的内存大小
char
*buffer
=
(char*)malloc(100);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询