首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在C中动态分配内存并确定数组大小?

在C语言中,动态分配内存并确定数组大小可以通过使用指针和malloc()函数来实现。以下是一个简单的示例,演示了如何动态分配内存并确定数组大小:

代码语言:c
复制
#include<stdio.h>
#include <stdlib.h>

int main() {
    int size, i;
    int *arr;

    printf("请输入数组大小:");
    scanf("%d", &size);

    // 动态分配内存
    arr = (int *)malloc(size * sizeof(int));

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

    printf("请输入%d个元素:\n", size);
    for (i = 0; i< size; i++) {
        scanf("%d", &arr[i]);
    }

    printf("输入的数组为:\n");
    for (i = 0; i< size; i++) {
        printf("%d ", arr[i]);
    }

    // 释放内存
    free(arr);

    return 0;
}

在这个示例中,我们首先使用scanf()函数获取用户输入的数组大小,然后使用malloc()函数动态分配内存。malloc()函数接受一个参数,即要分配的内存大小(以字节为单位)。在这里,我们将数组大小乘以sizeof(int),以确保为整数数组分配足够的内存。

接下来,我们检查分配的内存是否成功。如果arr指向的是NULL,则表示内存分配失败。然后,我们使用scanf()函数获取用户输入的数组元素,并将它们存储在动态分配的内存中。最后,我们使用free()函数释放分配的内存,以避免内存泄漏。

这个示例演示了如何在C语言中动态分配内存并确定数组大小。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券