Convertir de u_int8_t * en char * en C

Je suis à la programmation en C à l'aide d'Atmel Studio (pour ceux qui ne connaissent de ce fait, elle sert à la programmation de micro-contrôleurs, tels que les cartes arduino. Vous ne pouvez pas simplement l'imprimer, vous devez envoyer les données en Série à une application de type Terminal.)

J'ai jusqu'à présent:

uint8_t * stackHolder;
char buffer[128];
stackHolder = &buffer[127];

Permet de dire que l'adresse de buffer[127] arrive à être 0x207. Je peux voir que la valeur de stackHolder est 0x207 utiliser le débogueur. J'ai une fonction qui prend un char * et des impressions. Donc ma question est comment puis-je convertir des uint8_t * stackHolder dans un char * afin que je puisse le transmettre à ma fonction d'impression?

  • C ne prend pas en charge les méthodes. Assurez-vous de ne pas utiliser le C++? Et pourquoi voulez-vous convertir un pointeur?
  • La conversion entre les types de ce casting est pour.
  • Peut-être vous avez besoin de convertir ceux signés et non signés char types de int pour obtenir la gamme complète.
  • Qu'est-ce que dans votre tampon? Des caractères ASCII? Si donc, d'éliminer la u_int8_t pointeur et il suffit d'utiliser un pointeur de char pour stackHolder.
  • pour clarifier, je suis chargé d'écrire un programme qui se déplace à l'emplacement du Pointeur de pile (pour les changements de contexte, je crois). le pointeur de pile dans mon microcontrôleur se compose de 2 u_int8_t registres. J'essaye simplement de: a: obtenir l'adresse qu'il désigne et l'impression, et b: l'impression de ce qui est réellement stockée à cette adresse. Chaque fois que je l'ai jeté il n'a pas d'imprimer quoi que ce soit, je suppose que cela ne fonctionnait pas correctement. Je suppose que mon tampon est rempli avec des 0 parce que je pense que c'est la façon dont C initialise si vous n'avez pas donner une valeur
InformationsquelleAutor skyleguy | 2017-03-22