gpt4 book ai didi

c++ - 通过指针传递函数参数

转载 作者:太空狗 更新时间:2023-10-29 20:26:51 26 4
gpt4 key购买 nike

当函数参数属于同一类型时,以下代码是否定义明确且可移植?

void foo(int* p, int size);
void pass_on_args_by_pointer(int a, int b, int c)
{
foo(&a, 3);
}

澄清一下:'size' 参数应该包含数组 p 中元素的数量。所以,我想将所有三个整数传递给 foo。

最佳答案

不,这既不可移植也不可定义。编译器不需要在内存中的相邻位置分配函数参数。事实上,它们根本不需要将参数 bc 放在内存中,因为您没有获取它们的地址。通过 foo 中的 p 超出 int 边界的任何访问都是未定义的行为。

关于c++ - 通过指针传递函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18229597/

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