所以代码:
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_t
和int
是不同的类型,因此不能为int*
指针赋予size_t
对象的地址(没有强制转换)。
关于c++ - 并排定义指针和类型问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28094598/