Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/127.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将字符数组的最后8个字节设置为uu uint64_C++_Visual C++ - Fatal编程技术网

C++ 将字符数组的最后8个字节设置为uu uint64

C++ 将字符数组的最后8个字节设置为uu uint64,c++,visual-c++,C++,Visual C++,我正在维基百科上的伪代码中实现SHA1算法 它说我应该将原始长度作为64位附加到消息中,因此我尝试了以下方法: // new_message is of type char[] and is 9+ bytes long *((__int64*)(new_message-8)) = (__int64) length; 这会使新消息的内存损坏 有人能发现错误吗 谢谢 编辑: 天哪,我真蠢。新的_消息指向我的阵列的开始,难怪它崩溃了 不是决定性的,没有看到显示new\u message设置的代码部分

我正在维基百科上的伪代码中实现SHA1算法

它说我应该将原始长度作为64位附加到消息中,因此我尝试了以下方法:

// new_message is of type char[] and is 9+ bytes long
*((__int64*)(new_message-8)) = (__int64) length;
这会使新消息的内存损坏

有人能发现错误吗

谢谢

编辑:


天哪,我真蠢。新的_消息指向我的阵列的开始,难怪它崩溃了

不是决定性的,没有看到显示
new\u message
设置的代码部分

不过,看起来您正在使缓冲区下溢,这会弄乱堆头,堆头可能位于
&new\u消息[0]
之前。从外观上看,您正在将
\uu int64
写入
字符[]
开始之前的8个字节。

新消息-8 将从当前指针返回8个字节,这是意图吗? 追加意味着在末尾添加8个字节,您需要确保 1> 最后您有足够的内存(8个额外字节)。
2> 你的指针指向了正确的位置(要附加的位置)

你应该写大端还是小端?@monoceres-我正+1-回答你的问题,以纪念你的自我评估的残忍。每个人都去过那里。