malloc定义数组
时间: 2024-03-25 19:34:37 浏览: 59
malloc是C语言中的一个函数,用于动态分配存。通过malloc函数可以在程序运行时动态地分配指定大小的内存空间,并返回一个指向该内存空间的指针。
1. 使用malloc定义一维数组[^1]:
```c
int *num = (int *)malloc(sizeof(int) * 8);
```
上述代码定义了一个一维数组,数组名为num,有8个元素,每个元素的类型为int。通过malloc函数分配了足够的内存空间来存储这个数组,并将返回的指针强制类型转换为int类型的指针。
2. 使用malloc定义包含灵活数组成员的结构[^2]:
```c
#include <stdio.h>
#include <stdlib.h>
struct FlexArray {
int length;
int array[];
};
int main() {
int size = 5;
struct FlexArray *flex = malloc(sizeof(struct FlexArray) + sizeof(int) * size);
flex->length = size;
for (int i = 0; i < size; i++) {
flex->array[i] = i;
}
for (int i = 0; i < size; i++) {
printf("%d ", flex->array[i]);
}
free(flex);
return 0;
}
```
上述代码定义了一个包含灵活数组成员的结构FlexArray。通过malloc函数分配了足够的内存空间来存储这个结构以及灵活数组的元素,并将返回的指针赋值给指向结构的指针flex。然后可以通过指针访问结构的成员和灵活数组的元素。
阅读全文