Pb allocation mémoire en C
cyberlulu
-
cyberlulu -
cyberlulu -
Bonjour
j'ai un pb avec le programme que je suis en train d'ecrire. voilà le code :
ce que je ne comprend pas, c'est quand j'alloue dans un premier tps de la mémoire ds temp, après il m'affiche 0 et plein de sigles à coté alors que je veux afficher seulement printf("%s",&l[0]->valeur);
pourtant quand j'enlève la partie avec temp, il n'y a aucun pb.
si qqun sait pourquoi il ne m'affiche pas juste '0', merci de m'expliquer pourquoi...
j'ai un pb avec le programme que je suis en train d'ecrire. voilà le code :
typedef struct elem {char valeur; struct elem * suivant; } element; typedef element * liste; main() {int i; liste l[10]; liste temp; temp=(element*)malloc(sizeof(liste)); temp->valeur='G'; temp->suivant=NULL; for(i=0;i<=10;i++) {l[i]=(element*)malloc(sizeof(element)); l[i]->suivant=NULL;} l[0]->valeur='0'; printf("%s",&l[0]->valeur); getch(); return 0; }
ce que je ne comprend pas, c'est quand j'alloue dans un premier tps de la mémoire ds temp, après il m'affiche 0 et plein de sigles à coté alors que je veux afficher seulement printf("%s",&l[0]->valeur);
pourtant quand j'enlève la partie avec temp, il n'y a aucun pb.
si qqun sait pourquoi il ne m'affiche pas juste '0', merci de m'expliquer pourquoi...
A voir également:
- Pb allocation mémoire en C
- Mémoire vive - Guide
- RAM : type, format, CAS, vitesse, tout sur la mémoire vive - Guide
- Nettoyer memoire iphone - Guide
- C'est un secret bien gardé : ce réglage d'expert peut doper les performances de votre PC - Guide
- Gmail memoire insuffisante - Guide
sinon en passant, pourquoi faut-il mettre &l[0]->valeur et pas l[0]->valeur tout court ??
merci bcp !
Il faut aussi enlever le & devant l[0]->valeur.
A++
C'est pas parce qu'ils sont nombreux à avoir tort
qu'ils ont raison! (COLUCHE)
C'est pas parce qu'ils sont nombreux à avoir tort
qu'ils ont raison! (COLUCHE)
avec t une liste défini comme dans le code plus haut.
donc pour extraire la dernière lettre d'un nombre, j'ai utilisé strncpy et j'ai donc une un seul caractère dans une chaine de caractère. le pb se pose à la condition if(strcmp(chiffre,tab[i]->valeur)==0)