這是什麼意思?這是什麼意思?將變量的地址轉換爲char。怎麼來的?
int main(int argc, char *argv[]) {
int size = 2048;
char *stack;
stack = (char *) &size; // cast memory address of a variable to char
}
我真的不明白如果我們施放一個變量的內存地址會是什麼。
這是什麼意思?這是什麼意思?將變量的地址轉換爲char。怎麼來的?
int main(int argc, char *argv[]) {
int size = 2048;
char *stack;
stack = (char *) &size; // cast memory address of a variable to char
}
我真的不明白如果我們施放一個變量的內存地址會是什麼。
int size = 2048;
char *stack;
stack = (char *) &size; // cast memory address of a variable to char
size
爲int
變量佔據一個4字節的存儲器塊(通常)。&size
因此是該內存塊的地址。char *stack = (char *)&size
這意味着stack
是一個指向char的指針,指向該4字節內存塊的開始。基本上*stack
是4字節int變量的第一個字節,其確切值是平臺相關的(取決於機器字節順序)
似乎是由某人編寫的代碼不具有良好的調試器。看一個函數的堆棧框架是一個沼澤標準功能。潛水的真正意圖,好吧,誰知道。問他,而不是我們。 –
@Oka Prinarjaya這意味着什麼,因爲你沒有顯示實際的代碼和鑄造使用的上下文。 –