字符串形式初始化动态申请的一维字符数组
时间: 2024-10-08 13:02:05 浏览: 22
在C语言中,如果你需要动态地创建一维字符数组并用字符串的形式初始化,你可以使用`malloc()`函数分配内存,并使用`strcpy()`函数复制字符串到新分配的空间。这里是一个简单的例子:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char *str = "Hello, World!"; // 这是我们要复制的字符串
size_t len = strlen(str); // 计算字符串长度
// 动态申请内存
char *dynamicArray = (char*) malloc(len + 1); // 加1是为了包含字符串结束符'\0'
if (dynamicArray) { // 检查内存是否成功分配
// 将字符串复制到动态数组
strcpy(dynamicArray, str);
// 打印动态数组内容
printf("Dynamic Array: %s\n", dynamicArray);
// 释放内存防止内存泄漏
free(dynamicArray);
} else {
printf("Memory allocation failed.\n");
}
return 0;
}
```
在这个例子中,我们首先计算了输入字符串的长度,然后加上1(因为`\0`是字符串的终止符),接着动态地请求了相应大小的内存。最后,我们将字符串复制过去,并记得在程序结束后使用`free()`释放所占内存。
阅读全文