Bonjour,
Pourriez vous me dire s'il existe un indicateur de format pour le type void* comme %d en est un pour le type int ? (Cette intérogation vient du fait que j'ai un type abstrait de données "matrice" que je souhaiterais rendre générique)
Merci
Version imprimable
Bonjour,
Pourriez vous me dire s'il existe un indicateur de format pour le type void* comme %d en est un pour le type int ? (Cette intérogation vient du fait que j'ai un type abstrait de données "matrice" que je souhaiterais rendre générique)
Merci
Code:
1
2
3
4
5
6
7
8 void *ptr; /* ... */ printf("%p\n", ptr); /* ... */
merci vicenzo pour ta reponse, en fait ma question est un peu nigaude, avant de la soumettre j'aurais du me remettre à l'esprit qu'il n'existe que le type pointeur vers void et pas le type void, la réponse est donc évidente. Mon vrai problème est de trouver une solution pour rendre générique mon type abstrait de données. Avec le preprocesseur on peut faire en sorte de choisir quel type l'on désire utiliser a la compilation, en revanche comment résoudre le problème de l'impression de données dans un printf par exemple, car on doit spécifier un format...
Généralement, un type abstrait de donnée est implémenté par un structure, tu ne souhaites quand même pas afficher une structure avec un printf() ? Si c'est simplement pour afficher son adresse, dans ce cas vicenzo ta donné la bonne façon de faire : la règle est simple, le spécificateur %p attend un pointeur générique, donc si ton pointeur est typé, tu le castes en (void*).
Généralement, sauf pour les cas particuliers, qui est le mien. je dois réaliser ceci sans structure, uniquement avec une utilisation du preprocesseur...
...et constater que l'impression des coefficients de la matrice est impossible. c'était le but d'un exercice.Code:
1
2
3
4
5 #define TYPE int /*ou double etc... avant de compiler*/ /* l'objet du TAD */ typedef TYPE matrixS[MAX][MAX];
Merci pour vos reponses.