c语言中,在子函数中用malloc函数开辟的空间在主函数中还有效吗?
可以用,malloc开辟的空间是在堆中 堆中的空间是人工管理的 你可以在子函数中malloc一块空间 然后把空间的指针传出去 就可以在main函数中用了 至于怎么传出去 应该知道的吧
用当然是可以用得,malloc是程序员自己开辟,自己回收的空间,在你没有回收之前,你把这片空间的地址,通过指针传出去,就可以使用了。
可以用,不过要把空间的地址传出去。
开辟的内存空间可以使用,用来保存地址的变量不可用。使用malloc()申请大小size的内存空间,只要不使用free()释放掉,直到程序运行结束才回释放。
#include <stdio.h>
int* mal()
{
int* ptr = (int*)malloc(sizeof(int));
*ptr = 2;
return ptr;
}
void main()
{
printf("%d",*mal());
}
例如这段代码会输出:
2
malloc出来的空间只要不free,空间都不会被自动销毁,从子函数中返回也一样
原型: void *malloc(unsigned int size);
#include或#include
malloc的全称是memory allocation,中文叫动态内存分配,当无法知道内存具体位置的时候,想要绑定真正的内存空间,就需要用到动态的分配内存。
malloc 向系统申请分配指定size个字节的内存空间(连续的一块内存)。返回类型是 void* 类......
答案就在这里:C语言之malloc函数
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?