指针++,未定义的行为

时间:2014-01-09 05:52:39

标签: c++ pointers undefined-behavior

嗨,我对指针有疑问;

char * bf=new char[5];

char* p=bf+5;

p--是否有效?或p--会出现一些未定义的错误?由于bf+5未定义?

感谢。

2 个答案:

答案 0 :(得分:3)

没有任何未定义的内容
char* bf=new char[5];
char* p=bf+5;

但是p将指向数组的末尾。只要数组没有被销毁,p--就会将你带回到数组的最后一个元素。

答案 1 :(得分:1)

在这种情况下,

p--保证指向数组的最后一个元素,没有UB。