comment imprimer les données à l'intérieur d'un char pointeur c++(c++)?
J'ai un
function(const char * data)
{
//how to print the data which is inside the data
}
quand je debug, je vois que l'adresse. Si j'ai l'impression (*données), rien n'est imprimé.
Une idée?
print
n'est pas un standard C++ fonctionnalité, et si c'est une fonction dans votre débogueur, vous devez spécifier le débogueur vous êtes en utilisant. *data
désigne uniquement le premier caractère à l'adresse data
: si ce caractère est un caractère de contrôle, il ne peut pas apparaître à imprimer - cela dépend de votre terminal/logiciel de la console. Notez qu'une chaîne vide dans ASCIIZ représentation est tout simplement une valeur de 0 (pas un '0'), et ne sera probablement pas imprimer utilement. Vous pouvez essayer de l'imprimer(de données), mais vous n'êtes pas en précisant assez au sujet de votre environnement pour vous donner une confiance de réponse.Je me demande si il parle gdb ?
Veuillez spécifier le débogueur vous utilisez. À partir de la
print
commande, vous êtes à l'aide de ma meilleure supposition est que vous êtes à l'aide de gdb. Si oui, essayez de le x
de commande. Il vous permet d'imprimer le contenu d'un bloc de mémoire.OriginalL'auteur SPB | 2011-01-06
Vous devez vous connecter pour publier un commentaire.
OriginalL'auteur Andy Johnson
printf("%s\n", data)
fonctionne pour moi.OriginalL'auteur
parce que les données sont un int ! ! !: étant un pointeur, c'est être entier. Donc, si vous demandez à imprimer un int, il imprime un int.
Pas de. Un pointeur est un pointeur, en dépit d'être représenté comme un simple entier en interne (dans la plupart des cas).
cout << data
sera pas imprimer l'adresse des points de sortie mais le nul chaîne terminée il indique.char *
n'est pasint
(ou de n'importe quel type intégral à tous) et invoque donc une autre surcharge deoperator<<
- un qui sait de sortie c de chaînes.Sauf que vous pouvez imprimer un zéro chaîne terminée par un pointeur vers son premier caractère directement, sans la surcharge de la création d'un (probablement allouée dynamiquement) de la chaîne.
votre code va fonctionner, mais il gaspille de cycles CPU inutilement par l'allocation de la mémoire et de la copie de la chaîne.
OriginalL'auteur Stephane Rolland