Imprimer les éléments d'un tableau de chaînes de caractères en c
J'ai créé une fonction qui prend un pointeur vers le premier élément est un C-tableau de chaînes.
C'est le tableau, et comment j'allais faire:
char element1[60] = "ubunz";
char element2[60] = "uasdasffdnz";
char* array[10] = {element1,element2};
Puis j'ai créé un pointeur vers le premier élément du tableau:
char *pointertoarray = &array[0];
Puis j'ai passé le pointeur vers la fonction que j'ai faite:
void printoutarray(char *pointertoarray){
int i = 0;
while (i < 2){
printf("\n Element is: %s \n", *pointertoarray);
pointertoarray = pointertoarray + 1;
i = i+1;
}
}
Lorsque je lance le programme, le tableau ne jamais imprime.
J'ai fait ce programme avant d'en C++, mais j'ai utilisé la STL type de chaîne, et fait un pointeur vers un tableau de chaînes de caractères. Je pense que mon problème vient de la façon dont je vais de faire un tableau de chaînes de caractères en C, et en fait un pointeur vers elle.
Demandez-vous ce type de
Si vous activez les messages d'avertissement dans votre compilateur, il vous dira qu'il y a un problème ici...
*pointertoarray
est et quel type %s
attend.Si vous activez les messages d'avertissement dans votre compilateur, il vous dira qu'il y a un problème ici...
OriginalL'auteur turnt | 2013-01-13
Vous devez vous connecter pour publier un commentaire.
Quand printf() est appelée avec %s, il va plus ou moins faire ce qui suit
Ce que vous voulez faire est de quelque chose comme
Lorsque vous faites référence à des éléments spécifiques dans un tableau, vous devez utiliser un pointeur ET un index, c'est à dire pointeur[0] dans ce cas, 0 est l'indice et "pointeur" est le pointeur. Le ci-dessus pour les boucles peuvent passer à travers l'ensemble de la matrice un index à la fois parce que " je "est l'index et le" je " augmente à la fin de chaque rotation de la boucle et la boucle continuera à tourner jusqu'à ce qu'il atteigne le caractère de fin NULL dans le tableau.
De sorte que vous pourriez vouloir essayer quelque chose le long des lignes de cette.
OriginalL'auteur John Vulconshinz
Fait ceci:
compiler sans avertissements sur votre compilateur? Si oui, votre compilateur est cassé. Veuillez lire les avertissements et erreurs il imprime.
&array[0]
est unchar**
, pas unchar*
OriginalL'auteur gustaf r
Supprimer l'astérisque
OriginalL'auteur hmatar