指针数组,它是数组,每个元素都是指针,如何在堆区开辟指针数组呢?希望下面的文章对你有所帮助!
代码:
#include
#include
#include
//堆区指针数组
char** allocate_memory(int n){
char** temp = (char**)malloc(sizeof(char*)* n);
if (temp == NULL){
return NULL;
}
//每一个指针元素指向堆区内存
for (int i = 0; i < n;i ++){
//将malloc空间的首地址赋给每一个指针数组中每一个元素
temp[i] = (char*)malloc(100);
sprintf(temp[i], "%2d hello world!", i + 1);
}
return temp;
}
//打印函数
void print_array(char* arr[],int len){
for (int i = 0; i < len;i ++){
printf("%s\n",arr[i]);
}
printf("打印完毕!\n");
}
//释放数组空间
void free_memory(char* arr[], int len){
if (NULL == arr){
return;
}
for (int i = 0; i < len;i ++){
free(arr[i]);
arr[i] = NULL;
}
free(arr);
arr = NULL;
}
int main(){
char** pArray = NULL;
int n = 10;
pArray = allocate_memory(n);
print_array(pArray,n);
free_memory(pArray,n);
pArray = NULL;
system("pause");
return EXIT_SUCCESS;
}
本文介绍如何在C语言中于堆区创建指针数组,并为每个指针元素分配内存。通过示例代码展示了指针数组的分配、初始化、打印及释放内存的完整过程。
1060

被折叠的 条评论
为什么被折叠?



