一个使用堆分配存储的字符串,初始内容为'abc',长度为3。如果将其内容修改为'abcdef',长度变为6。以下哪个操作是对该字符串长度和内容改变的正确描述?

答案解析

核心考点说明:本题考察使用堆存储的字符串进行扩容时的内存操作。 解题思路分析:堆分配的字符串长度改变时,需要重新分配内存空间,并且原有数据应被保留。 realloc函数可以实现此功能。 选项分析: A. 字符串的存储空间被截断,只保留了'abc'部分:错误。字符串长度变大,不会被截断。 B. 字符串的存储空间被重新分配,容纳了'abcdef',原空间被释放:正确。realloc会重新分配足够大的空间,并拷贝原有内容到新空间。 C. 字符串的存储空间保持不变,直接在原空间后添加'def':错误。如果原有空间不够,无法直接添加,可能会导致内存溢出。 D. 字符串的长度被修改为6,但实际存储空间仍然是原来的大小:错误。长度和存储空间都应该进行相应的改变。 易错点提醒:注意堆分配字符串的修改,如果空间不够需要使用realloc来重新分配空间。
正确答案:B
随机推荐
开始刷题