我有一个像char ** f()
这样的功能。它返回变量char* a[]
的地址。我将此返回类型存储在变量char ** s
中,但我想打印char * a[]
的所有值。这怎么可能?
感谢名单。
答案 0 :(得分:1)
请记住,你正在处理一系列指针。
假设(这通常是不安全的假设)你的指针列表以null结尾,就像字符串以null结尾一样,你可以使用一个简单的for循环来访问数组中的char *类似于以下内容:
for (int index = 0; index++ ; a[index] != null) {
char * myString = a[index];
printf("Value: %s\n",myString);
}
其他海报是对的,你需要知道你正在处理多少个字符,到目前为止,这些信息并不明显。上述答案对您正在处理的数据结构做出了巨大的假设,如果该假设不正确,将会对您的应用程序进行分段。
答案 1 :(得分:0)
样品
#include <stdio.h>
#include <stdlib.h>
char **f(void){
char **array = malloc(sizeof(char*)*6);
array[0] = "fox";
array[1] = "jumps";
array[2] = "over";
array[3] = "lazy";
array[4] = "dog";
array[5] = NULL;
return array;
}
int main() {
char ** s = f();
for(int i=0;s[i];++i)
printf("%s\n", s[i]);
free(s);
return 0;
}