在C语言中,动态分配内存并确定数组大小可以通过使用指针和malloc()
函数来实现。以下是一个简单的示例,演示了如何动态分配内存并确定数组大小:
#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语言中动态分配内存并确定数组大小。
领取专属 10元无门槛券
手把手带您无忧上云