您的位置:首页 > 编程语言 > C语言/C++

C语言系列之C语言如何返回字符串数组

2017-10-12 15:26 309 查看

问题出在如此

想了一下C语言如何实现返回一个字符串数组,答之:没有这种功能,但是吧,还是有办法实现的。

那就是指向数组的指针

解释

char **p 这个p就是指向数组的指针,它指向一个数组的起始地址.

想要引用里面的数组时,直接使用p[i] 即可。

我们知道C语言里面的各种数组,本质上都是指针,并且函数其实也是不能把数组当作参数的,实际上都是把数组的地址传进去了,实际上就是指向数组地址的指针。

说了这么多废话,那么我们就实现一下吧。

实现

char **getData(int sz,char **res){
char **p = (char **) malloc((sz+1)*sizeof(char *));
//   char **p;
for(int i=0;i<sz;i++){
p[i] = (char *) malloc(sizeof(char)*20);
int temp = rand()%8;         //生成8个随机数
p[i] = res[temp];
}
return p;      //p是指向指针数组的指针
}


这样返回的P就是指向数组的指针了,实际上就是一个字符串数组

函数解释:

函数返回一个字符串数组,实际上就是指向数组的指针,传进去的是返回的数组的大小以及一个字符串数组,用来处理数据用。

这个函数完成的功能就是把一个比较小规模的字符串数组,模拟成比较大规模的字符串数组,具体细节是怎么做的请参照我下一篇文章
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: