gpt4 book ai didi

c - 大型动态数组中未使用的内存会怎样?

转载 作者:行者123 更新时间:2023-11-30 15:01:08 27 4
gpt4 key购买 nike

考虑以下代码行:

char* f = (char *)(malloc(10240 * sizeof(char)));
scanf(%s, f);

现在,当输入是带有任何编号的字符串时。字符数小于 10240,这个动态数组中的其余内存会发生什么?

如果我想删除此动态数组的一个元素而不更改此动态数组的大小,该怎么办?

最佳答案

当你只在 5 加仑的水桶中放入一杯水时,会发生什么?它仍然是一个 5 加仑的桶,只是放在那里,几乎是空的。如果您想回收该空间以供其他用途,您可以执行相当于将水倒入一个较小的杯子中并返回水桶的操作(即,分配一 block 足以容纳您的字符串的新内存块,将字符串复制过来,然后free() 大块),或使用 realloc() 神奇地缩小存储桶。

关于c - 大型动态数组中未使用的内存会怎样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41641964/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com