gpt4 book ai didi

C 指针数组

转载 作者:行者123 更新时间:2023-11-30 20:48:33 25 4
gpt4 key购买 nike

从外部代码我收到一个结构:

struct some_list {
void *data;
int length;
};

其中 data 是指向 *char 数组第一个元素的指针。

现在,当我收到结构体时,我当然可以获得数组的长度,并且理论上知道指针的大小,我应该能够迭代所有这些指针并使用 printf 打印字符串。

当我尝试使用以下代码打印它时,出现段错误:

struct some_list result = get_list();
printf("Array length: %d\n", result.length);
int j;
for(j=0;j<result.length;j++){
printf("%d's element in array is: %s\n", j+1, (((char *)result.data)[j]));
}

我如何获得我的值(value)观?

最佳答案

如果data确实是指向char*数组第一个元素的指针,那么你需要这样做:

char **p = result.data;
int j;
for(j=0; j<result.length; j++){
printf("%d's element in array is: %s\n", j+1, p[j]);
}

虽然在您的代码中 (((char *)result.data)[j])) 甚至不计算为字符串,但它是一个字符。

关于C 指针数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37003698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com