指针 ++,未定义的行为

Pointer ++, undefined behavior

本文关键字:未定义 指针      更新时间:2023-10-16

嗨,我有一个关于指针的问题;

char * bf=new char[5];
char* p=bf+5;

p--有效吗?还是p--会犯一些未定义的错误?因为bf+5是不确定的?

谢谢。

没有什么未定义的

char* bf=new char[5];
char* p=bf+5;

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

在这种情况下

p--保证指向数组的最后一个元素,而不是 UB。