我有一个名为
int* abc()
的函数,它返回一个指针数组,我将其称为 int* num = abc();
一切都很好,直到我想循环遍历数组,
sizeof(num)
始终返回 8。
我的问题是我应该如何循环它?
一切都很好,直到我想循环遍历数组,其中 sizeof(num) 始终返回 8。
在您的代码中,
num
是一个指针。它的大小永远不会改变。
您无法从指针导出元素的数量。您需要通过另一个变量提供数字。
通过添加像
size_t *number_of_results
这样的参数,在函数返回之前将其设置为正确的数字。
或者通过向数组添加哨兵值。
例如。如果您不允许数组中存在负值,则可以使用 -1
标记最后一个条目。或者 0
,就像 C 中的字符串一样。