如何在C++中将指向变量的指针声明为函数的参数?

1 c++ pointers declaration new-operator function-parameter

我有一个函数,需要一个const D3DVECTOR3 *pos,但我没有理由事先声明这个.对我来说最合乎逻辑的解决方案是使用new:

Function(
    //other parameters,
    new D3DXVECTOR3(x, y, 0));
Run Code Online (Sandbox Code Playgroud)

但是我不知道我会怎么做deleting,在函数中初始化.我的下一个想法是使用&运算符,如下所示:

Function(
    //other parameters,
    &D3DVECTOR3(x, y, 0));
Run Code Online (Sandbox Code Playgroud)

但我不知道这是否是一种有效的方法.(它没有出错,但是有很多东西不能给出非常好的错误).我应该使用new,&还是其他一些我忽略的技术?

Joh*_*itb 5

不可能直接向临时调用address-of运算符(MSVC会告诉您这也不是标准C++的更高警告级别).除了你可能做的

Function(
//other parameters,
&(D3DXVECTOR3 const&)D3DXVECTOR3(x, y, 0));
Run Code Online (Sandbox Code Playgroud)

但这很恶心.只需声明一个局部变量并传递其地址即可.