📅  最后修改于: 2023-12-03 14:50:14.051000             🧑  作者: Mango
在 C 编程语言中,我们可以使用动态分配内存来创建一个字符数组。
malloc()
函数分配字符数组malloc()
函数可以分配在内存中被用来存储字符数组的块。下面是一个演示如何使用malloc()
函数创建字符数组的程序示例:
#include <stdio.h>
#include <stdlib.h>
int main()
{
char* array = NULL;
int size = 0;
printf("请输入数组大小: ");
scanf("%d", &size);
// 使用 malloc 函数分配内存
array = (char*)malloc(size * sizeof(char));
if(!array)
{
printf("内存分配失败!\n");
return -1;
}
printf("请输入字符数组: ");
scanf("%s", array);
printf("您输入的字符数组: %s\n", array);
// 释放分配的内存
free(array);
return 0;
}
使用malloc()
函数时需要注意以下几点:
malloc()
函数前需要#include<stdlib.h>头文件。malloc()
函数返回一个指向所分配内存地址的指针。malloc()
函数的时候需要强制类型转换。free()
函数来释放内存,以便系统重复使用。calloc()
函数分配字符数组calloc()
函数与malloc()
函数类似,但是它不仅会分配内存,还会将分配的内存区域初始化为0。下面是一个演示如何使用calloc()
函数创建字符数组的程序示例:
#include <stdio.h>
#include <stdlib.h>
int main()
{
char* array = NULL;
int size = 0;
printf("请输入数组大小: ");
scanf("%d", &size);
//使用 calloc 函数分配内存
array = (char*)calloc(size, sizeof(char));
if(!array)
{
printf("内存分配失败!\n");
return -1;
}
printf("请输入字符数组: ");
scanf("%s", array);
printf("您输入的字符数组: %s\n", array);
// 释放分配的内存
free(array);
return 0;
}
使用calloc()
函数的时候需要注意点与使用malloc()
函数相同,只是它会把分配的内存区域初始化成0。
使用malloc()
和calloc()
函数在 C 编程语言中动态分配内存可以灵活地创建所需要的字符数组大小。使用时需要注意内存分配和释放的配对操作,以免出现内存泄漏的情况。