如果一个字符串使用堆分配存储,并且字符串的内容发生了改变,长度也增加,那么通常会使用哪个函数重新分配内存?
答案解析
核心考点说明:本题考察堆内存管理的相关函数,特别是当动态分配的字符串需要扩展空间时所使用的函数。
解题思路分析:malloc用于初始分配内存,free用于释放内存,strcpy用于复制字符串,realloc用于重新分配内存,可以扩展或缩小已分配的内存块。
选项分析:
A. malloc():错误。malloc()用于初始分配内存,而不是重新分配已存在的内存块。
B. free():错误。free()用于释放已分配的内存,不涉及重新分配。
C. realloc():正确。realloc()函数可以改变已分配的内存块大小,通常用于扩展字符串的存储空间。
D. strcpy():错误。strcpy()是字符串复制函数,不涉及内存分配。
正确答案:C