温馨提示×

C语言指针操作动态内存分配

小樊
81
2024-10-31 11:20:57
栏目: 编程语言

在C语言中,动态内存分配是一种在程序运行时根据需要分配内存的方法

  1. 使用malloc()函数分配内存:
#include <stdio.h>
#include <stdlib.h>

int main() {
    int *ptr; // 声明一个整数指针
    int n = 10; // 要分配的内存大小

    ptr = (int *)malloc(n * sizeof(int)); // 使用malloc()分配内存

    if (ptr == NULL) { // 检查内存分配是否成功
        printf("内存分配失败!\n");
        return 1;
    }

    // 使用指针操作动态分配的内存
    for (int i = 0; i < n; i++) {
        ptr[i] = i * 2;
        printf("ptr[%d] = %d\n", i, ptr[i]);
    }

    free(ptr); // 释放动态分配的内存
    return 0;
}
  1. 使用calloc()函数分配内存:
#include <stdio.h>
#include <stdlib.h>

int main() {
    int *ptr; // 声明一个整数指针
    int n = 10; // 要分配的内存大小

    ptr = (int *)calloc(n, sizeof(int)); // 使用calloc()分配内存并初始化为0

    if (ptr == NULL) { // 检查内存分配是否成功
        printf("内存分配失败!\n");
        return 1;
    }

    // 使用指针操作动态分配的内存
    for (int i = 0; i < n; i++) {
        ptr[i] = i * 2;
        printf("ptr[%d] = %d\n", i, ptr[i]);
    }

    free(ptr); // 释放动态分配的内存
    return 0;
}

在这两个示例中,我们使用malloc()calloc()函数分别为整数数组分配了动态内存。注意,在使用指针操作动态分配的内存之后,我们需要使用free()函数释放内存,以避免内存泄漏。

0