gcc 4.4.3 c89obtenir l'adresse du tableau de pointeurs en pointeurs sur char
J'essaie d'afficher l'adresse. Fondamentalement, je veux juste prouver que j'affiche la bonne adresse.
Je veux afficher l'adresse de chaque tableau de pointeurs vers char « device_gc », « device_mg », « device_cc »
Je les afficher dans ma fonction principale. Cependant, dans ma fonction display_list, je veux juste prouver que j'affiche la bonne adresse. La sortie est la même.
J'espère que vous comprenez?
Un grand merci pour vos suggestions.
#include <stdio.h>
void display_list(char ***dev_list);
int main(void)
{
char *device_gc[] = {"GCDEV01", "GCDEV02", "GCDEV03", "GCDEV04", "GCDEV05", "GCDEV06", NULL};
char *device_mg[] = {"MGDEV01", "MGDEV02", "MGDEV03", "GCDEV05", NULL};
char *device_cc[] = {"CCDEV01", "CCDEV02", "CCDEV03", "CCDEV04", "CCDEV05", NULL};
char **device_list[] = {device_gc, device_mg, device_cc, NULL};
printf("device_gc [ %p ]\n", (void*)*device_gc);
printf("device_mg [ %p ]\n", (void*)*device_mg);
printf("device_cc [ %p ]\n", (void*)*device_cc);
display_list(device_list);
return 0;
}
void display_list(char ***dev_list)
{
while(**dev_list != NULL) {
printf("dev [ %p ]\n", (void*)**dev_list++);
}
}
sortie souhaitée:
device_gc [ 0x80485e0 ]
device_mg [ 0x8048610 ]
device_cc [ 0x8048628 ]
dev [ 0x80485e0 ]
dev [ 0x8048610 ]
dev [ 0x8048628 ]
La sortie réelle que je reçois est différent et conduit parfois à une décharge de base. Pourquoi donc?
S'il vous plaît indiquer votre question clairement – Sundar