gpt4 book ai didi

f(void*&) 调用时出现 C++ 错误

转载 作者:行者123 更新时间:2023-11-27 23:24:14 24 4
gpt4 key购买 nike

能否请您解释以下代码中的错误:

void foo(void*& param)
{
param = new char[10];
}

void main()
{
int* p;
foo(p);
}

error C2664: 'foo' : cannot convert parameter 1 from 'int *' to 'void *&'

我如何调用具有任何指针类型的函数并更改函数内部的指针(不是该地址处的值,地址本身)。我不想使用模板或双指针。

最佳答案

为什么不能将 int* 作为参数传递给 f

问题是,如果允许这样做,您将破坏类型系统。老实说,这正是您想要做的……如果您想破坏类型系统,您需要通过强制转换明确请求它。

您在评论中指出您不想使用强制转换,另一方面编译器不希望您破坏类型系统。在那场意志之战中,我认为您不会说服编译器……它太固执了。

关于f(void*&) 调用时出现 C++ 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10551969/

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