Petite incomprehension

Résolu
coachedwin -  
 coachedwin -
Bonjour,

j'ai eu un test de C dans lequel on me disait, quelle est l'erreur, si la ligne n'a pas d'erreur, on l'execute

int *p,*q;
q[0]=0; 1°)
p=(int*)malloc(sizeof(int)); 2°)
q=p; 3°)
q[0]=1; 4°)

j'ai répondu 3 car apres le malloc, ça me paraissait etrange, mais on me dit que la reponse etait 1, pourquoi?
merci.

1 réponse

  1. supernico Messages postés 584 Statut Membre 193
     
    Bonjour,

    la réponse est 1) car tu accèdes à l'élément 0 alors que tu n'as pas encore alloué de mémoire...
    0
    1. coachedwin
       
      n'est-il pas censé le metttre dans la pile alors?
      0
    2. coachedwin
       
      ah ok, j'ai compris, desole
      0
    3. supernico Messages postés 584 Statut Membre 193
       
      question résolue ?
      0
    4. coachedwin
       
      oui merci
      0