c/c++开发分享动态分配的整数数组的大小

我正在处理类型的函数:

int xyz(int input[]) 

我无法访问main函数,因此不知道数组的大小。 如何找到输入数组的大小? 有没有办法知道数组的结束位置? sizeof(input)/sizeof(int*)给出1作为输入基本上是一个指针。

    如果调用者没有提供有关数组的大小信息,那么就无法在函数xyz()中获得大小。

    您可以将大小信息传递给另一个变量(或作为数组的元素)。

     int xyx(int abc[], size_t len) { } 

    否……在被调用函数中没有(可移植的)方式,所以在这种情况下(即没有传递number-of-elements参数)这是正常的,以便调用者采用一些约定,例如在最后提供一个sentinel值使用元素或保证一定数量的元素。 如果使用了标记,您可以通过检查调试器中的调用代码来certificate这是在做的。

    如果将数组传递给函数并且不提供长度,则无法找到它,因为数组衰减为指针,其大小始终为32(64)位。

      以上就是c/c++开发分享动态分配的整数数组的大小相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注(猴子技术宅)。

      本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

      如若转载,请注明出处:https://www.ssfiction.com/c-cyuyankaifa/545961.html

      发表评论

      电子邮件地址不会被公开。 必填项已用*标注