gpt4 book ai didi

c - 为什么取消引用 2 次有效,而 3 次却出现段错误

转载 作者:行者123 更新时间:2023-11-30 16:26:36 26 4
gpt4 key购买 nike

它如何通过两次解引用打印 3d 数组的元素。我认为它需要像 3 取消引用 printf("%c",*(*(*(a+0)+1)+1)); 之类的东西。存在理解危机。

int main() 
{
char a[2][3][3] = {'a','b','c','d','e','f','g',
'h','i','j','k','l','m'};
printf("%s ", **a);
getchar();
return 0;
}

最佳答案

为指定的 %s 提供的参数应该是一个指针。对于 '%sprintf 使用指针从内存中获取字符。因此,对于三维数组,将两个*应用于名称会产生正确的类型,即指向char`的指针。

对于%c,参数应该是具有字符值的int。将三个 * 应用于数组即可完成此操作。

注意:虽然 **a%s 提供了正确的类型,但该参数应该指向以 null 结尾的一维字符串中的字符。允许字符继续跨越数组维度是不可靠的。

关于c - 为什么取消引用 2 次有效,而 3 次却出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53002016/

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