C语言函数问题: free可以只释放个别单元吗,比如我定义了一个动态数组

C语言函数问题:
free可以只释放个别单元吗,比如我定义了一个动态数组
int *ns=malloc(sizeof(int)*20);
结果只有18个人到场,我想释放掉ns[18]和ns[19]而保留其它单元free()能作到吗?当然20可用变量代替,可我想钻研一下free括号除了写指针名有没有别的用法。

不可以,这个需求要通过移动数组元素再加上realloc()函数实现
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-07-01
首先肯定的说:不可以。
c语言中free表示:标识指向的内存不再受到保护,可以被其他数据读写
如果想要实现你说的功能,可以参考以下方法:
1、realloc()函数
2、使用链表,可以随意增删节点
相似回答