用c语言写一个函数用于动态创建一个数组,并读取n个整数
时间: 2024-05-04 07:17:26 浏览: 160
用C语言创建动态数组
好的,以下是用 C 语言编写的函数,可以动态创建一个数组,并读取 n 个整数:
```c
#include <stdio.h>
#include <stdlib.h>
int* create_array(int n)
{
int* arr = (int*)malloc(n * sizeof(int)); // 动态分配内存
if (arr == NULL) { // 内存分配失败
printf("Error: Failed to allocate memory!\n");
return NULL;
}
for (int i = 0; i < n; i++) {
printf("Enter element #%d: ", i+1);
scanf("%d", &arr[i]);
}
return arr;
}
int main()
{
int n;
printf("Enter the number of elements: ");
scanf("%d", &n);
int* arr = create_array(n);
if (arr == NULL) {
return 1;
}
printf("The elements are: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
free(arr); // 释放内存
return 0;
}
```
这个函数 `create_array` 接受一个整数 `n` 作为参数,表示要创建的数组的长度。它先用 `malloc` 动态分配了一个大小为 `n * sizeof(int)` 的内存空间,然后在循环中读取用户输入的 `n` 个整数,并将它们存储在数组中。最后返回这个数组的指针。
在 `main` 函数中,我们先读取用户输入的 `n`,然后调用 `create_array` 函数创建数组。如果创建失败,就返回 1。否则,我们打印出这个数组中的所有元素,并释放掉动态分配的内存空间。
注意到这里我们使用了 `malloc` 函数来动态分配内存。在使用完这个数组之后,我们需要调用 `free` 函数来释放这个内存空间,以避免内存泄漏。
阅读全文