[问题] 指标型态转换

楼主: AirWall (空气墙)   2018-09-21 17:17:41
开发平台(Platform): (Ex: Win10, Linux, ...)
win10
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
codeblock
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
问题(Question):
char * Pks = new char[1000];
*(uint16_t*)Pks = 0x47;
我在 trace code 时看到如上,
原本设定 Pks 指向长度1000的字符阵列,
在第二行转为 uint16 形态的指标并且存入一个 1 Byte 的数字 0x47 到阵列第一个元素
位置,
请问经转换的 Pks 指标现在是指向长度 1000 的 char 阵列的前两格吗(2bytes)
然后是会把 0x47 存到字符阵列的哪一格呢?
测试了几个小实验都看不出怎么放的,请大家解惑,感谢
喂入的资料(Input):
预期的正确结果(Expected Output):
错误结果(Wrong Output):
程式码(Code):(请善用置底文网页, 记得排版,禁止使用图档)
补充说明(Supplement):
作者: LPH66 (-6.2598534e+18f)   2018-09-21 19:17:00
关键字: (Little) Endian
作者: nicknick0630 (NICK)   2018-09-21 19:38:00
windows 是用小序端去存的哦
作者: djshen (djshen)   2018-09-21 20:54:00
月经文
作者: dces4212 (flawless)   2018-09-22 16:19:00
问一下 endianness不是cpu-dependent吗 还是说跟os也有关系
作者: PkmX (阿猫)   2018-09-24 00:08:00
有些架构是可以切换endianness的
作者: alan23273850   2018-09-25 13:17:00
应该是 CPU dependent 吧

Links booklink

Contact Us: admin [ a t ] ucptt.com