Petit problème sur le langage C

Résolu/Fermé
Teitangirl - 3 févr. 2008 à 15:38
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 3 févr. 2008 à 23:23
Bonjour,
Je débute dans le langage c, je n'arrive pas à compiler mon programme, pourriez vous m'aider?
Merci:)

==> Le but de ce programme est d'afficher un nom de couleur selon la touche sur laquelle on appuie, et cela uniquement avec des appels de fonction dans la boucle principale.
Lorsque je compile ce programme, le message suivant apparait:
"Pointer arithmetic involving pointer to freed memory"

Mon programme est le suivant:

#include <ansi_c.h>
#include <utility.h>
#include "inc.h"

typedef unsigned char U8;

//prototypes
U8* lecture(void) ;
void ecriture(U8) ;


void main(void)
{
U8 *ptr;
while(1)
{
ptr=lecture();
ecriture(*ptr);
}
}

/* */
U8* lecture(void)
{
U8 val;
unsigned short lu;
U8 *ptr;

printf("0=JAUNE 1=VERT 2=BLEU 3=BLANC\n");
val=GetKey();
sscanf(&val,"%hu",&lu);

switch(lu)
{
case 0:
ptr="jaune";
break;
case 1:
ptr="vert";
break;
case 2:
ptr="bleu";
break;
case 3:
ptr="blanc";
break;
default:
ptr="tricheur";
break;
}
return ptr;
}


void ecriture(U8 ptr)
{
printf("%s\n",ptr);
}
A voir également:

1 réponse

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
3 févr. 2008 à 23:23
Salut,
ptr="blanc" ça ne marchera pas, ton ptr est un pointeur non alloué. Utilise la fonction strcpy, ;)

0