Retourner un tableau statique c++
Fermé
switch1
Messages postés
57
Date d'inscription
samedi 16 décembre 2000
Statut
Membre
Dernière intervention
17 avril 2009
-
3 janv. 2009 à 21:18
switch1 Messages postés 57 Date d'inscription samedi 16 décembre 2000 Statut Membre Dernière intervention 17 avril 2009 - 9 janv. 2009 à 17:35
switch1 Messages postés 57 Date d'inscription samedi 16 décembre 2000 Statut Membre Dernière intervention 17 avril 2009 - 9 janv. 2009 à 17:35
A voir également:
- Tableau statique java
- Tableau croisé dynamique - Guide
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Tableau ascii - Guide
- Tableau word - Guide
2 réponses
Quel que soit le tableau, celui-ci ne peut être passé que par adresse.
Pour ce qui concerne la valeur de retour d'une fonction, c'est pareil.
Alors pourquoi ce n'est pas autorisé ? Tout simplement car c'est absurde. En effet, imaginons une fonction qui retournerait un tableau statique; la tableau serait mis sur la pile comme pour toute autre valeur de retour; alors comment l'appelant connaîtrait la taille du tableau ? Il ne le pourrait pas et par conséquent ne pourrait récupérer correctement la tableau... plantage assuré !
Maintenant supposons que nous retournions un pointeur sur un tableau statique qui aurait été déclaré dans la fonction, c'est possible et l'appelant pourrait récupérer le tableau... mais... et oui il y a un mais... à la fin de la fonction, la tableau, comme pour toute variable locale à une fonction, est détruit, c'est à dire libéré de la mémoire et, par conséquent, le pointeur récupéré pointerait sur un tableau qui n'existe plus... plantage assuré.
Ai-je été assez clair.
Pour ce qui concerne la valeur de retour d'une fonction, c'est pareil.
Alors pourquoi ce n'est pas autorisé ? Tout simplement car c'est absurde. En effet, imaginons une fonction qui retournerait un tableau statique; la tableau serait mis sur la pile comme pour toute autre valeur de retour; alors comment l'appelant connaîtrait la taille du tableau ? Il ne le pourrait pas et par conséquent ne pourrait récupérer correctement la tableau... plantage assuré !
Maintenant supposons que nous retournions un pointeur sur un tableau statique qui aurait été déclaré dans la fonction, c'est possible et l'appelant pourrait récupérer le tableau... mais... et oui il y a un mais... à la fin de la fonction, la tableau, comme pour toute variable locale à une fonction, est détruit, c'est à dire libéré de la mémoire et, par conséquent, le pointeur récupéré pointerait sur un tableau qui n'existe plus... plantage assuré.
Ai-je été assez clair.
switch1
Messages postés
57
Date d'inscription
samedi 16 décembre 2000
Statut
Membre
Dernière intervention
17 avril 2009
1
9 janv. 2009 à 17:35
9 janv. 2009 à 17:35
merci