2011-01-31 2 views
1

Ce code va à une boucle lorsque j'entre le nom et il ne sort pas. Quel est le problème?entrer les données à la structure

# define M 3 
struct clas 
{ 
    char name[16]; 
    int key; 
}; 


struct node 
{ 
    int n; 
    struct node *p[M]; 
    struct clas clsf[M-1] ; 
}; 

main() 
{ 
    int i; 

    struct clas clsf; 
    for(i=0;i<2;i++) 
    { 
     root = malloc(sizeof (struct node)); 
     printf("enter name \n"); 
     scanf("%s\n",root->clsf[i].name); 
     printf("%s\n",root->clsf[i].name); 
     printf("enter key\n"); 
     scanf("%d", &root->clsf[i].key); 
     printf("%d",root->clsf[i].key); 
    } 
} 
+1

Peut-être que vous devriez essayer de nous donner du code qui compile réellement – thkala

+0

votre nom de structure est clasifier ou clas? – ayush

+0

... et après cela, vous devriez nous dire ce que le problème est plus en détail, car après avoir corrigé votre code pour compiler il ne semble pas avoir de problème - au moins pas un problème de boucle infinie. – thkala

Répondre

4
  • root est non défini, et il y a une instance d'un struct classifier non défini: clsf.

    Remplacer struct classifier clsf; avec struct node *root;

  • retirer la terminaison \n de scanf Format:

    rpelace scanf("%s\n",root->clsf[i].name); avec scanf("%s",root->clsf[i].name);

1

Remplacer seulement struct classifier clsf;-struct node *root; rien de plus nécessaire

Questions connexes