所以,我有一些指針問題。 我正在寫一個函數,它將內存地址存儲在[]中。 這些內存地址指向b []中的實際數據值。 我無法從b獲取內存地址以存儲在。問題獲取和存儲陣列中的內存地址
// Assume these are initialized to 0 outside of this snippet
char a[100];
char b[100];
b[0] = 42; // Some value for us to use
int* a_ptr = (int*)&a[0]; // Store the address of a[0] in a_ptr
int* b_ptr = (int*)&b[0]; // Store the address of b[0] in b_ptr
*a_ptr = (int)&b_ptr; // PROBLEM LINE. The first four bytes of a[]
// should contain the memory address of b[0].
// However, it does not. Here are the debugger values:
// a_ptr = 0x00429148
// b_ptr = 0x00429151
// a[0] SHOULD be 0x00429151, but it is instead 0x0012fe4c.
是否有一些技巧我需要做的,以獲得0x00429151存儲在[0..3]?
爲什麼標記C++? 「 – tristan 2010-08-19 04:39:30
」應該包含b [0]的內存地址嗎?如果你想讓它們包含「b [0]」的內存地址,你爲什麼強制使用'b_ptr'的地址而不是'b [0]'的地址? – AnT 2010-08-19 04:59:44