c语言动态分配指针数组的demo
时间: 2024-12-18 10:13:17 浏览: 5
在C语言中,动态分配指针数组通常使用`malloc()`函数来获取内存空间。下面是一个简单的例子,它演示了如何创建一个动态大小的整数指针数组:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int n; // 用户输入数组元素的数量
printf("请输入要动态分配的数组元素数量: ");
scanf("%d", &n);
// 动态分配一个可以存储n个整数的指针数组
int** ptr_array = (int**) malloc(n * sizeof(int*)); // 分配n个指针的空间
if (ptr_array == NULL) { // 检查内存是否成功分配
perror("Memory allocation failed");
return 1;
}
for (int i = 0; i < n; i++) { // 对每个指针分配单独的内存空间
ptr_array[i] = (int*) malloc(sizeof(int)); // 每个指针指向一个int类型的值
if (ptr_array[i] == NULL) {
perror("Memory allocation for element failed");
free(ptr_array); // 如果失败,释放已分配的指针数组
return 1;
}
}
// 现在你可以对这个动态数组进行操作
for (int i = 0; i < n; i++) {
*ptr_array[i] = i + 1; // 给每个元素赋值
printf("元素 %d 的地址: %p\n", i+1, ptr_array[i]);
}
// 释放所有动态分配的内存
for (int i = 0; i < n; i++) {
free(ptr_array[i]); // 释放每个元素的内存
}
free(ptr_array); // 释放指针数组本身
printf("程序结束.\n");
return 0;
}
阅读全文