使用C语言开辟一段动态数组malloc
时间: 2024-04-29 07:17:32 浏览: 102
用C语言创建动态数组
在C语言中,可以使用malloc函数来动态地分配内存空间以创建一个动态数组。malloc函数的原型如下:
```c
void* malloc(size_t size);
```
其中,size_t是一个无符号整数类型,表示要分配的内存空间的大小(以字节为单位)。malloc函数返回一个指向分配内存空间的指针,如果分配失败,则返回NULL。
下面是使用malloc函数创建动态数组的步骤:
1. 确定要创建的动态数组的元素类型和元素个数。
2. 计算需要分配的内存空间的大小,即元素类型的大小乘以元素个数。
3. 调用malloc函数分配内存空间,并将返回的指针赋给一个指针变量。
4. 检查malloc函数是否成功分配了内存空间(即返回的指针是否为NULL)。
5. 使用分配的内存空间来存储数据。
下面是一个示例代码,演示了如何使用malloc函数创建一个动态数组:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int n; // 动态数组的元素个数
int* arr; // 指向动态数组的指针
printf("请输入动态数组的元素个数:");
scanf("%d", &n);
// 计算需要分配的内存空间的大小
size_t size = n * sizeof(int);
// 调用malloc函数分配内存空间
arr = (int*)malloc(size);
// 检查malloc函数是否成功分配了内存空间
if (arr == NULL) {
printf("内存分配失败!\n");
return 1;
}
// 使用动态数组存储数据
for (int i = 0; i < n; i++) {
printf("请输入第%d个元素的值:", i + 1);
scanf("%d", &arr[i]);
}
// 打印动态数组的元素
printf("动态数组的元素为:");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
// 释放动态数组所占用的内存空间
free(arr);
return 0;
}
```
阅读全文