c++ - 在 C/C++ 中向指针添加 1 个字节的正确方法是什么?

标签 c++ c pointers

我现在正在使用这段代码将指针移动 1 个字节,但我感​​觉有些不清楚..

int* a = (int*)malloc(sizeof(int));
void* b = ((char*)a)+1;   

char 是 1 个字节,但未定义为字节操作目的。我相信还有另一种方法可以执行此 byte 操作。 byte 操作的正确方法是什么?

附言。我修改了示例代码以使其有效。它现在使用 Clang 编译为 C++。

最佳答案

我觉得你很困惑:

char is 1 byte, but not defined for byte operation purpose. I believe there's another way to do this byte operation. What's the correct way to byte operation?

如果 char 不是完全相同的意思,您期望 byte 到底是什么意思?

在 C 和 C++ 中,字符字节。 根据定义不是的情况是字节必然是八位字节。一个字节至少包含 8 位。 无法保证给定平台甚至可以可能引用恰好 8 位的内存块。

关于c++ - 在 C/C++ 中向指针添加 1 个字节的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4914183/

相关文章:

java - 实体类方法中的数学逻辑问题

c++ - 为什么这段代码有段错误?

c++ - QML:在 QML 中使用 cpp 信号总是导致 "Cannot assign to non-existent property"

c++ - MPIR gcc 编译 - 找不到 -lmpir

c - 奇怪的 cscope 命令行限制

组合两个字符串删除重复的子字符串

c++ - 内存泄漏、重载赋值运算符、New、Delete 和 C++

c++ - 宏不通过直接调用扩展,而是通过间接调用扩展

c++ - C++中的图像处理

c - 将单指针和双指针传递给c中的函数