gpt4 book ai didi

c - 即使数组不为空,数组大小也为零

转载 作者:太空宇宙 更新时间:2023-11-04 05:55:33 25 4
gpt4 key购买 nike

我有一个函数,它将字符串数组作为输入,如果它为空则添加字符串,然后返回数组。如果数组不为空,则应显示数组的内容。

If 条件通过检查大小来检查是否为空。我的问题是即使数组不为空,大小也始终为零。而且我知道数组不为空,因为我可以打印出它的内容。

这是我的代码:

 char **check(char **words) {
if(sizeof (words) / sizeof (**words) == 0) {
words[0] = "vacation";
words[1] = "vaccaciones";
words[2] = "vancances"
}
else {
//do something else
}
}

无论我尝试做什么,它都不会进入 else 条件。我检查了数组,它不为空并且我的 if 条件的值始终为零。我做错了什么?

最佳答案

sizeof (words) / sizeof (**words)

words 是指向指针的指针,sizeof(pointer)/sizeof(element) 是您得到的。所以你得到

sizeof(pointer) = 4 /* Assuming */
sizeof(element) = 1

结果将是 4/1 != 0 因此 if() 条件永远不会通过。

您的检查与数组的内容/大小无关。

关于c - 即使数组不为空,数组大小也为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28248210/

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