Petite incomprehension

Résolu/Fermé
coachedwin - 8 nov. 2011 à 18:37
 coachedwin - 8 nov. 2011 à 18:47
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

supernico Messages postés 513 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 20 novembre 2011 193
8 nov. 2011 à 18:39
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
n'est-il pas censé le metttre dans la pile alors?
0
ah ok, j'ai compris, desole
0
supernico Messages postés 513 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 20 novembre 2011 193
8 nov. 2011 à 18:45
question résolue ?
0
oui merci
0