首先!要搞懂char**是什么?
我们知道char*是字符指针,是一个地址,指向一个字符串。
那么char**就是指向char*的指针,也是一个地址,指向指针的指针(好烦)。
使用char**的时候,通常是用作函数参数。
为了深入理解呢,我们直接定义使用,然后配合malloc(申请内存)来展示
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i;
int n;
scanf("%d",&n);//n为字符串个数
char **a=(char**)malloc(sizeof(char*)*n);//申请有n个字符串的内存
for(i=0;i<n;i++)
{
//指针可以用数组来表示
a[i]=(char *)malloc(sizeof(char)*5);//申请字符串的大小
scanf("%s",a[i]);
}
for(i=0;i<n;i++)
{
printf("%s\n",a[i]);
free(a[i]);//释放每个字符串的内存
}
free(a);//释放指向指针的a指针的内存
return 0;
}
这样是不是char**就很好理解了呢!
如有错误,还请大家批评指正 !!!
理解char**:内存分配与字符串操作详解
本文通过实例解析了char**的概念,介绍了如何使用和管理char**指针,包括malloc动态内存分配,并展示了如何在函数间传递和操作多个字符串。
873

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



