我对指针有疑问
我有两个指针,一个是初始化而另一个不是;
现在我想要没有值(尚未初始化)的第二个指针指向内存中的相同位置。
好的,我写了一个小程序来做这个并且它可以正常工作
int *P , *P2 ;
P = new int ;
P2 = new int ;
*P = 1 ;
P2 = P ;
cout << "P= " << *P << endl << endl ;
cout << "P2= " << *P2 << endl << endl ;
*P = 0 ;
cout << "P2= " << *P2 << endl << endl ;
输出如下:
P = 1 ;
P2 = 1 ;
P2 = 0 ;
所以它像我想要的那样正确。
现在我想做同样的事情,但这次我想用ID3D11Device *
以下是代码:
ID3D11Device *Test ;
Test = Device->Get_Device() ;
cout << "Test =" << Test << endl << endl ;
cout << "Get = " << Device->Get_Device()<< endl << endl ;
Device->~CL_Device();
cout << "Test =" << Test << endl << endl ;
cout << "Get = " << Device->Get_Device()<< endl << endl ;
Get_Device函数定义:
![ID3D11Device *const Get_Device() const { return _Device ;}][1]
schema解释我想要的东西。
答案 0 :(得分:3)
首先,您应该避免直接调用对象的析构函数。这并没有释放与之相关的记忆。请改用delete Device;
。
其次,如果你想要两个指针,你只需按照你在第一个例子中所示的那样继续:
ID3D11Device *Test, *Test2;
Test = Device->Get_Device();
Test2 = Test;
现在Test
,Test2
和Device->Get_Device()
都指向内存中的相同位置,当然只有Device->Get_Device()
始终返回相同的指针。
编辑:见评论