所以我有void *ptr并且我想查看前 4 個位元組,這是一些整數。
最初我認為我應該這樣做:
void *return_val = *(int *)ptr;
這是正確的嗎?我知道如何在查看元資料后使用 sizeof 移動我的指標,但我不能 100% 確定如何將元資料中的整數分配給變數。
uj5u.com熱心網友回復:
如果ptr最初沒有指向一個int物件,那么嘗試以這種方式重新解釋位元組是嚴格的別名違規。
正確的方法是使用memcpy將位元組復制到一個int:
int val;
memcpy(&val, ptr, sizeof val);
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/360363.html
上一篇:應用程式視窗檢測是否在FMXDelphiWindows和Macintosh中的后臺
下一篇:如何正確分配指向回呼函式的指標?
