malloc 字符串使用
时间: 2024-09-10 09:15:31 浏览: 40
C语言实现合并字符串
`malloc`是一个在C语言标准库中用于动态内存分配的函数,通常用于创建字符串,尤其是当你需要不确定大小的字符串时。在C中,如果你想创建一个字符数组,并使用`malloc`为其分配空间,可以这样做:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h> // 需要用到strlen函数获取字符串长度
int main() {
char* dynamicString = NULL; // 初始化指针
size_t sizeInput; // 用户输入的字符串长度
printf("请输入一个字符串:");
fgets(dynamicString, 256, stdin); // 注意fgets会留下换行符,如果需要去除,需额外处理
// 使用strlen计算实际字符串长度并加上1(因为还要放'\0'结束标志)
sizeInput = strlen(dynamicString) + 1;
// 再次动态分配内存,这次包括了结束符 '\0'
dynamicString = (char*) realloc(dynamicString, sizeInput * sizeof(char));
if (dynamicString == NULL) {
printf("内存分配失败!\n");
return 1;
}
printf("你输入的字符串是:%s\n", dynamicString);
// 使用完后别忘了释放内存
free(dynamicString);
return 0;
}
```
在这个例子中,用户输入的字符串会被存储在动态分配的内存中,直到程序结束才会释放。
阅读全文