指向自己的指针 [英] pointer to itself

查看:77
本文介绍了指向自己的指针的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



int main()

{

int * i =(int *)& i;

}


上述声明是按照标准的有效声明吗?

由于对象正在创建,同时我试图存储

其地址本身,这是正确的事情吗?

解决方案



shaanxxx写道:


int main()

{

int * i =(int *)& i ;

}


上面的语句是按照标准的有效声明吗?

因为对象正在创建,同时我也是试图将其地址存储起来,这是正确的事情吗?



好​​吧,没有错。没有什么能阻止你这样做。




shaanxxx写道:


int main()

{

int * i =(int *)& i;

}


上面的语句是按照标准的有效语句吗?

由于对象是在创建的,同时我试图将其地址存储为自己的地址,这是对的吗?



这是实现定义的行为,因为你初始化我的

是一个不兼容的指针值。我的意思是只持有int指针

值。你正在为它指定一个类型指针的指针值,指向

指向int的指针。


3月4日,8日:17 pm,shaanxxx < shaan ... @ yahoo.comwrote:


int main()

{

int * i =(int *)& i;


}


上述声明是否符合标准的有效声明?

由于对象正在创建,同时我试图将其地址存储在其中,这是正确的事情吗?



我猜可能存在对齐问题。

如果我错了,请纠正我。



int main()
{
int *i = (int *) &i;
}

Above statement is a valid statement as per standard ?
Since object is getting created and same time i am trying to store
its address in itself, it is right thing to do?

解决方案


shaanxxx wrote:

int main()
{
int *i = (int *) &i;
}

Above statement is a valid statement as per standard ?
Since object is getting created and same time i am trying to store
its address in itself, it is right thing to do?

Well, nothing was wrong. Nothing prevents you doing that.



shaanxxx wrote:

int main()
{
int *i = (int *) &i;
}

Above statement is a valid statement as per standard ?
Since object is getting created and same time i am trying to store
its address in itself, it is right thing to do?

It''s implementation defined behaviour since your initialising i with
an incompatible pointer value. i is meant only to hold int pointer
values. You''re focibly assigning it a pointer value of type pointer to
pointer to int.


On Mar 4, 8:17 pm, "shaanxxx" <shaan...@yahoo.comwrote:

int main()
{
int *i = (int *) &i;

}

Above statement is a valid statement as per standard ?
Since object is getting created and same time i am trying to store
its address in itself, it is right thing to do?

I guess there can be alignment issues.
Correct me if I''m wrong.


这篇关于指向自己的指针的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆