使用malloc和realloc函数可以动态分配字符串的内存空间。
示例代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char* str = (char*)malloc(10 * sizeof(char)); // 分配初始大小为10的字符串内存空间
if (str == NULL) {
printf("内存分配失败\n");
return 1;
}
strcpy(str, "Hello"); // 将字符串复制到分配的内存空间中
printf("字符串: %s\n", str);
str = (char*)realloc(str, 20 * sizeof(char)); // 重新分配大小为20的字符串内存空间
if (str == NULL) {
printf("内存分配失败\n");
return 1;
}
strcat(str, " World"); // 在原字符串后追加内容
printf("新字符串: %s\n", str);
free(str); // 释放内存空间
return 0;
}
该示例代码首先使用malloc函数分配了一个大小为10的字符串内存空间,并将字符串"Hello"复制到该空间中。然后使用realloc函数重新分配了一个大小为20的字符串内存空间,并在原字符串后追加了" World"。最后使用free函数释放了内存空间,避免内存泄漏。
注意:在使用malloc和realloc函数分配内存后,需要进行内存空间是否分配成功的判断,以及在不再使用时及时释放内存空间,以避免内存泄漏问题。
北极星训练营
腾讯云GAME-TECH沙龙
高校公开课
云+社区沙龙online第5期[架构演进]
云+社区沙龙online [技术应变力]
腾讯云存储专题直播
腾讯云数据湖专题直播
腾讯云Global Day LIVE
云+社区技术沙龙[第14期]
领取专属 10元无门槛券
手把手带您无忧上云