後正常工作,我寫了這個代碼:調試器沒有的memcpy
#include <stdlib.h>
int main(){
double x;
foo(&x);
// ...
}
foo(double *p){
char bytes[8];
bytes[0]=62;
bytes[1]=-120;
bytes[2]=41;
bytes[3]=23;
bytes[4]=-16;
bytes[5]=-57;
bytes[6]=47;
bytes[7]=-40;
// bytes = 00111110 10001000 00101001 00010111 11110000 11000111 00101111 11011000
memcpy(p,bytes,sizeof(double));
// (1)
}
後memcpy
我希望找到X裏的那些位,但在調試的代碼行(1)我有
*p = Binary: 1000000000000000000000000000000000000000000000000000000000000000
Hex: 0x8000000000000000
但是通過使用fprintf(stderr,"%x",*p);
打印該值,我得到值1729883e
。
你需要告訴我們在哪兒'bytes'填充。 –
您還沒有分配任何初始值 – nrathaus
請建立一個最小的工作示例,顯示您感興趣的行爲。請參閱[SSCCE](http://sscce.org)。 – jrok