【发布时间】:2020-05-13 11:37:38
【问题描述】:
我试图找到与我类似的标题问题,但没有找到我想要的。所以这是我的问题。 如果我 malloc 一个大小为 10 的数组,它是否能够重新分配大小并使其变为 9?还有8等?如果可以的话,如果我有这个数组: [1,2,3,4,5,6,7,8,9,10] 我怎么知道哪个单元格会被删除?每次都可以选择删除哪一个吗?
【问题讨论】:
-
说明书上不是很清楚吗? realloc()函数尝试将ptr指向的分配大小改变为size,并返回ptr。
-
为什么不能呢? realloc 的重点是改变大小。请在您的问题中添加详细信息。
-
Is it able to choose which one to delete every time ?- 不,您只能从末尾删除或添加到末尾。 -
不,你不能选择。如果大小减小,则数组的末尾会丢失。还涵盖在realloc man page:
The contents will be unchanged in the range from the start of the region up to the minimum of the old and new sizes -
谢谢@500-InternalServerError 。但是如果我把 2 换成 10,把 2 删掉,然后再把 10 放在最后呢?你认为这会奏效吗?