如何使用 malloc 动态分配一个可容纳10个字符的字符数组并将其赋值给指针 p?
时间: 2024-09-07 17:01:09 浏览: 37
在C语言中,动态分配一个可容纳10个字符的字符数组并将其赋值给指针p的过程可以按照以下步骤进行:
1. 首先,使用`malloc()`函数为数组分配内存。由于每个字符占用1个字节,所以需要分配10个字节的空间。
```c
char *p;
p = (char*)malloc(10); // 分配10个字符的空间
```
2. 检查内存分配是否成功,如果`malloc()`返回`NULL`,说明分配失败,需要处理这种情况。
```c
if (p == NULL) {
printf("Memory allocation failed.\n");
exit(1);
}
```
3. 初始化新分配的内存区域。通常我们会设置所有元素为`\0`以表示字符串结束。
```c
memset(p, '\0', 10); // 初始化为null终止符
```
4. 现在你可以将字符串赋值给指针所指向的位置。
```c
strcpy(p, "your_string"); // 将字符串复制到分配的内存
```
完整代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char *p;
if ((p = (char*)malloc(10)) == NULL) {
printf("Memory allocation failed.\n");
exit(1);
}
memset(p, '\0', 10);
strcpy(p, "your_string");
puts(p);
free(p); // 使用完后记得释放内存
system("pause");
return 0;
}
```
阅读全文