[英]Accessing address of the pointer in a C struct
我有一個結構:
struct test {
int **x;
}
如何訪問指針x的地址?
解決了
int main () {
struct test * mytest = malloc(sizeof(struct test));
...
printf("Address of the pointer x: %zu", &my_test->x);
}
您可能有點困惑。 一個int *
已經是一個地址,因此在這種情況下,您可以只使用my_test->x
(請注意,由於struct test *my_test
不指向任何內容,因此您的應用程序將立即struct test *my_test
)。
如果您想要指針的地址 (可以是int **
),則只需執行&my_test->x
。
您將int *
分配給5
似乎也很奇怪; 那是一個奇怪的內存地址。 也許您想將x
位置的int
設置為5
? 在這種情況下,您將編寫*my_text->x = 5
。
注意,不指向任何明智的指針的引用很危險。 您尚未在代碼中分配任何指針,因此它們可能只是(可能會)指向廢話。
以下代碼是沒有意義的:
x_tmp = mytest->x;
printf("Address pointed by x: %zu", &x_tmp);
它只是打印x_tmp
變量的地址,無論mytest
和mytest-> x`中包含什么。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.