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 就好了
本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。