所以代码:

int *mine, *yours; // note this declaration
mine = new int;
yours = mine;
*yours = 8;
delete yours;
*mine = 12;
mine = NULL;


我们可以定义我的指针吗?这段代码有什么问题吗?

也,

size_t length = 47;
int* plength = &length;


这个代码可以吗?

最佳答案

我们可以定义我的指针吗?


是。如果您不这样做,编译器就会抱怨。


  这段代码有什么问题吗?


是。两个指针都指向同一个对象,您可以通过mine删除该对象,然后通过yours对其进行访问。访问已删除对象的残余将产生不确定的行为。


  这个代码可以吗?


不,大概是编译器告诉您的。 size_tint是不同的类型,因此不能为int*指针赋予size_t对象的地址(没有强制转换)。

关于c++ - 并排定义指针和类型问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28094598/

10-10 18:19