放上博主出錯的代碼:
char *ptr; //此後省略部分代碼
if( (int)ptr==-1 ) //出錯地方
那句話的意思是從 void* 到 int 的轉換丟失精度,相信看到解釋有些人就明白了,
此問題只會出現在X64位的Linux上,因爲在64位的機器上指針佔用8個字節,int 佔用四個字節,所以纔會出現這樣的問題,
解決方法:
(long)ptr == -1 就好了
放上博主出錯的代碼:
char *ptr; //此後省略部分代碼
if( (int)ptr==-1 ) //出錯地方
那句話的意思是從 void* 到 int 的轉換丟失精度,相信看到解釋有些人就明白了,
此問題只會出現在X64位的Linux上,因爲在64位的機器上指針佔用8個字節,int 佔用四個字節,所以纔會出現這樣的問題,
解決方法:
(long)ptr == -1 就好了