Autotest
Quelle fonction standard utilise-t-on pour arrêter immédiatement le programme en cas d'erreur critique (par exemple si un malloc n'a pas marché) ?
critik
stop
exit
end
Un int occupe 4 octets en mémoire. On crée un tableau de 10 int. Ce tableau est placé à l'adresse 15060 en mémoire.
A partir de quelle adresse pourra être stockée la prochaine variable en mémoire ? Autrement dit, quelle est la première adresse libre après le tableau ?
15060
15061
15070
15071
15100
15101
Quelles sont les étapes à suivre dans l'ordre lorsqu'on alloue dynamiquement de la mémoire ?
malloc, vérification de la validité du pointeur, utilisation de la mémoire, free
malloc, utilisation de la mémoire, free, vérification de la validité du pointeur
free, vérification de la validité du pointeur, malloc, utilisation de la mémoire
Quelle est l'erreur qui s'est glissée dans ce programme ?
int main(int argc, char *argv[]) { int* pointeur = NULL; pointeur = malloc(sizeof(int)); if (pointeur == NULL) { exit(0); } printf("Quel age avez-vous ? "); scanf("%d", &pointeur); printf("Vous avez %d ans\n", *pointeur); free(pointeur);
return 0; } |
Il y a une * en trop devant le pointeur dans la ligne du printf
Il y a un & en trop devant le pointeur dans la ligne du scanf
Il manque une * devant le pointeur dans la ligne du malloc
Que se passe-t-il si je fais l'opération suivante ?
malloc(sizeof(int) * 25); |
Cela réserve de la mémoire pour un int de 25 octets
Cela réserve de la mémoire pour un tableau d'int de 25 cases
Cela réserve de la mémoire pour un float de 25 octets
Cela réserve de la mémoire pour un tableau de float de 25 cases
En résumé
- Une variable occupe plus ou moins d'espace en mémoire en fonction de son type.
- On peut connaître le nombre d'octets occupés par un type à l'aide de l'opérateur sizeof().
- L'allocation dynamique consiste à réserver manuellement de l'espace en mémoire pour une variable ou un tableau.
- L'allocation est effectuée avec malloc() et il ne faut surtout pas oublier de libérer la mémoire avec free() dès qu'on n'en a plus besoin.
- L'allocation dynamique permet notamment de créer un tableau dont la taille est déterminée par une variable au moment de l'exécution.
Créé avec HelpNDoc Personal Edition: Documentation Qt Help facile