指针 ++,未定义的行为
Pointer ++, undefined behavior
嗨,我有一个关于指针的问题;
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。
相关文章:
- 这个失败的测试是将零添加到空指针未定义的行为、编译器错误还是其他什么?
- 在硬件SIMD矢量指针和相应类型之间进行"interpret_cast"是一种未定义的行为吗
- 创建指针是否超过非数组指针的末尾,而不是从 C++17 中的一元运算符和未定义的行为派生?
- C++:私有类指针成员返回未定义的值
- 返回对未定义指针的引用
- 使用无效指针初始化指针声明符的行为是否未定义?
- 根据下面的作者,如果两个指针指向不同的数组,则比较的第一个版本将未定义
- 强制转换为指针引用是否会导致未定义的行为
- C++编译并链接到指向未定义函数的指针
- C++数组上的指针数学中的未定义行为
- 通过在此指针上放置新位置重新初始化对象时未定义的行为
- C 指针未定义的参考
- 将未定义的参数计数作为模板参数的函数指针
- 指针上的const_cast "this"是未定义的行为吗?
- 为什么指针减法是C++中未定义的行为?
- 未定义的引用指针的变量模板在clang中功能,而不是GCC
- 为什么将指针指向std ::设置的提取节点是未定义的行为
- 使用已删除shared_ptr中的原始指针的未定义行为
- C++修改指向结构的指针向量会导致未定义的行为
- 未定义的引用:试图初始化来自不同类的对象的指针数组