C语言创建存储数组指针的数组
时间: 2024-10-27 13:03:00 浏览: 27
在C语言中,你可以通过定义一个动态数组来存储数组指针。这种做法通常用于管理动态分配的一组数据块,每个元素都是指向另一个数组的指针。下面是一个简单的例子:
```c
#include <stdio.h>
#include <stdlib.h> // 包含malloc函数
#define ARRAY_SIZE 5 // 定义数组大小
typedef int (*ArrayType)[ARRAY_SIZE]; // 定义一个指向整型数组的指针类型
// 动态分配并初始化数组指针数组
ArrayType createArrayPointerArray() {
ArrayType arrayPointers; // 创建一个可以存储数组指针的数组
for (int i = 0; i < ARRAY_SIZE; i++) {
arrayPointers[i] = malloc(ARRAY_SIZE * sizeof(int)); // 分配内存
if (arrayPointers[i] == NULL) {
printf("Memory allocation failed for index %d\n", i);
return NULL;
}
// 初始化新分配的数组
for (int j = 0; j < ARRAY_SIZE; j++) {
arrayPointers[i][j] = i * ARRAY_SIZE + j;
}
}
return arrayPointers;
}
// 使用示例
void printArrays(ArrayType pointers) {
for (int i = 0; i < ARRAY_SIZE; i++) {
for (int j = 0; j < ARRAY_SIZE; j++) {
printf("%d ", pointers[i][j]);
}
printf("\n");
}
}
int main() {
ArrayType pointerArray = createArrayPointerArray();
if (pointerArray != NULL) {
printArrays(pointerArray); // 打印所有数组内容
// 清理内存
for (int i = 0; i < ARRAY_SIZE; i++) {
free(pointerArray[i]);
}
free(pointerArray);
} else {
printf("Failed to allocate memory for array pointers.\n");
}
return 0;
}
```
阅读全文