14
printf bir yapının adresini görmek nasıl
struct node *create_node(int data)
{
struct node *temp;
temp = (struct node *)malloc(sizeof(struct node));
temp->data=data;
temp->next=NULL;
printf("create node temp->data=%d\n",temp->data);
return temp;
}
struct node {
int data;
struct node *next;
};
adresinde aşağıdaki gibi bir işlev döndürüyorum: printf ("") temp dosyasında saklanan adresi nasıl görebilirim?
gdb'de adresli olarak kontrol edilirse adresler xdx29 biçiminde yani
printf("%p",temp)
adresinde printf("%p",temp)
adresinde gdb yazdırma komutunda gördüğümden farklı bir numaraya geliyor. .
+1: (pedanticly doğru) çok istekli Derleyiciler için, void * '' işaretçiyi döküm: 'printf ("% p", (void *) temp) ' – pmg
Neden printf (" 0x% 08X ", &temp);"? – aroth
@aroth gibi bir şeyin adresini yazdırmıyorsunuz: "imzasız" ve "struct node **" ile aynı temsile sahip olmadığınız için hiçbir garantiniz yok: snippet'iniz 64 bitlik makinelerde korkunç bir şekilde başarısız olur. Örneğin – pmg