我现在正在使用这段代码将指针移动 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/