C 内存管理

C 内存管理

#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <stddef.h>
#include <time.h>

int main() {
    // 内存管理
    char name[50];
    char *desc;

    strcpy(name, "jiangzhihao");

    //calloc(200, sizeof(char));
    //在内存中动态地分配 num 个长度为 size 的连续空间,并将每一个字节都初始化为 0。
    //所以它的结果是分配了 num*size 个字节长度的内存空间,并且每个字节的值都是0。

    //malloc(30 * sizeof(char))
    //在堆区分配一块指定大小的内存空间,用来存放数据。这块内存空间在函数执行完成后不会被初始化,它们的值是未知的。

    // 动态分配内存
    desc = (char *)malloc(30 * sizeof(char));
    if (desc == NULL) {
        fprintf(stderr, "Error - unable to allocate required memory\n");
    } else {
        strcpy(desc, "chanpinxue.cn");
    }
    // 假设要存储更大的描述信息
    desc = realloc(desc, 50 * sizeof(char));
    if (desc == NULL) {
        fprintf(stderr, "Error - unable to allocate required memory\n");
    } else {
        strcat(desc, "\twelcome to chanpinxue.cn");
    }

    printf("Name = %s\n", name);
    printf("Desc: %s\n", desc);

    // 使用 free() 函数释放内存
    free(desc);
}

发表回复

您的电子邮箱地址不会被公开。