📜  创建 arrya of chars mallo - C 编程语言(1)

📅  最后修改于: 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 编程语言中动态分配内存可以灵活地创建所需要的字符数组大小。使用时需要注意内存分配和释放的配对操作,以免出现内存泄漏的情况。