加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C:Malloc和Free

发布时间:2020-12-16 09:48:45 所属栏目:百科 来源:网络整理
导读:我试图解决C函数malloc和free.我知道在StackOverflow上已经讨论了很多.但是,我想我现在知道这些功能是做什么的.我想知道为什么要使用它们.我们来看看这段代码: int n = 10;char* array;array = (char*) malloc(n * sizeof(char));// Check whether memory c
我试图解决C函数malloc和free.我知道在StackOverflow上已经讨论了很多.但是,我想我现在知道这些功能是做什么的.我想知道为什么要使用它们.我们来看看这段代码:

int n = 10;
char* array;
array = (char*) malloc(n * sizeof(char));
// Check whether memory could be allocated or not...
// Do whatever with array...
free(array);
array = NULL;

我创建了一个char类型的指针,我称之为数组.然后我使用malloc来查找当前未使用的内存块(10 * sizeof(char))字节大.在将其分配给我之前创建的char指针之前,我将该地址输入为char指针.现在我可以使用我的char数组了.当我完成后,我将使用free来释放那块大块的内存,因为它不再被使用了.

我有一个问题:为什么我不做char数组[10];?维基百科只有一个小句子可以回答这个问题,而那句话我很遗憾不明白:

However,the size of the array is fixed at compile time. If one wishes to allocate a similar array dynamically…

我大学的幻灯片简明扼要:

It is also possible to allocate memory from the heap.

什么是堆?我知道一个名为heap的数据结构.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读