如何在c中迭代指针数组

问题描述 投票:0回答:1

我有一个名为

int* abc()
的函数,它返回一个指针数组,我将其称为
int* num = abc();

一切都很好,直到我想循环遍历数组,

sizeof(num)
始终返回 8。

我的问题是我应该如何循环它?

arrays c
1个回答
0
投票

一切都很好,直到我想循环遍历数组,其中 sizeof(num) 始终返回 8。

在您的代码中,

num
是一个指针。它的大小永远不会改变。 您无法从指针导出元素的数量。您需要通过另一个变量提供数字。

通过添加像

size_t *number_of_results
这样的参数,在函数返回之前将其设置为正确的数字。 或者通过向数组添加哨兵值。 例如。如果您不允许数组中存在负值,则可以使用
-1
标记最后一个条目。或者
0
,就像 C 中的字符串一样。

© www.soinside.com 2019 - 2024. All rights reserved.