Comment malloc alloue la memoire ?

Fermé
fab - 24 oct. 2003 à 14:29
Marden Messages postés 1072 Date d'inscription dimanche 11 février 2001 Statut Membre Dernière intervention 29 janvier 2006 - 24 oct. 2003 à 15:03
bonjour,

j'alloue dynamiquement un tableau de long double de 100 éléments. Si je demande d'afficher la valeur du 101 eme élément,
il me donne 0. Je ne comprends pas pourquoi il ne detecte pas
d'erreur a la compilation puisque je demande la valeur d'un
élément qui normalement ne devrait pas exister. Comment
malloc alloue la mémoire ?

merci d'avance pour toute réponse

j'utilise kdevelop sous debian woody

1 réponse

Marden Messages postés 1072 Date d'inscription dimanche 11 février 2001 Statut Membre Dernière intervention 29 janvier 2006 208
24 oct. 2003 à 15:03
Vraisemblablement, mais sans garantie (à voir dans les sources Linux ?) :
L'allocation dynamique s'effectue par blocs (pour des raisons d'optimisation), dont la taille doit dépendre de l'implémentation, et c'est tout le bloc qui n'est pas protégé. Contrairement à l'allocation "statique" effectuée depuis le code, où le compilateur peut connaître les limites requises. Ceci dit, les vérifications de ce type me semblent être de la responsabilité du programmeur.
Dans le même d'idée, la fin d'une chaîne de caractères, mal définie et/ou mal gérée, est le premier "\0" rencontré qui peut être ... n'importe où.
0