关于c语言中malloc函数的问题

c语言中,在子函数中用malloc函数开辟的空间在主函数中还有效吗?

5个回答

原型:  void *malloc(unsigned int size);

#include或#include

malloc的全称是memory allocation,中文叫动态内存分配,当无法知道内存具体位置的时候,想要绑定真正的内存空间,就需要用到动态的分配内存。

malloc 向系统申请分配指定size个字节的内存空间(连续的一块内存)。返回类型是 void* 类......
答案就在这里:C语言之malloc函数
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?

可以用,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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问