typedef struck 创造一个动态数组
时间: 2023-11-14 07:10:21 浏览: 45
根据提供的引用内容,typedef是用来类型重定义的关键字,而struct是用来创建结构体类型的关键字。结合这两个关键字,我们可以使用typedef来创建一个动态数组类型。
具体实现方法如下:
1. 首先定义一个结构体类型,该结构体包含一个指向int类型的指针和一个int类型的变量,用于记录数组的长度。
2. 使用typedef将该结构体类型重定义为一个新的类型名,例如Array。
3. 创建一个函数,该函数接受一个int类型的参数n,表示数组的长度,然后动态分配n个int类型的空间,并将指针和长度记录在Array类型的变量中,最后返回该Array类型的变量。
4. 在主函数中调用该函数,传入数组长度,即可得到一个动态数组。
代码示例:
```
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int *arr;
int len;
} Array;
Array createArray(int n) {
Array a;
a.arr = (int*)malloc(n * sizeof(int));
a.len = n;
return a;
}
int main() {
Array a = createArray(5);
for (int i = 0; i < a.len; i++) {
a.arr[i] = i;
printf("%d ", a.arr[i]);
}
free(a.arr);
return 0;
}
```