Allocation dynamique et fonction. [C] - C++ - Programmation
Marsh Posté le 22-04-2003 à 16:57:22
Code :
|
Marsh Posté le 22-04-2003 à 17:09:48
ben il te manque un niveau d'indirection, alors tu ne peux pas récupérer le résultat de ta fonction alloc
pour faire simple, vois le fonctionne de malloc
Code :
|
et un passage par pointeur
Code :
|
je crois que tu ferais bien de t'acheter un bouquin de C
Marsh Posté le 22-04-2003 à 17:15:38
++Taz a écrit : ben il te manque un niveau d'indirection, alors tu ne peux pas récupérer le résultat de ta fonction alloc |
Ca veut dire koi ?
Marsh Posté le 22-04-2003 à 17:18:21
pour faire simple, fait retourner ton pointer par ta fonction:
int * fct_alloc()
{
...
return pt;
}
Marsh Posté le 22-04-2003 à 17:20:49
Deaddy a écrit : pour faire simple, fait retourner ton pointer par ta fonction: |
Et dire que j'y ai pensé mais je l'ai pas fait !!!
Merci
Marsh Posté le 22-04-2003 à 18:40:53
ou alors :
Koude a écrit :
|
Marsh Posté le 22-04-2003 à 19:11:08
Pour voir si j'ai pas oublié mon C:
Code :
|
C'est bon aussi?
Marsh Posté le 23-04-2003 à 11:24:51
Belgique a écrit : Pour voir si j'ai pas oublié mon C:
|
perdu ... Les références, c'est C++, pas C ....
Marsh Posté le 23-04-2003 à 11:50:35
Ah ben, j'ai confondu mais en c++ ça doit être bon alors?
Marsh Posté le 24-04-2003 à 14:47:57
Koude a écrit : |
En C, les paramètres de fonction sont toujours en entrée. On passe toujours des copies des paramètres d'appel. Pour pouvoir modifier la valeur d'un paramètre de manière durable (i.e. la modification survit à la sortie de la fonction), il faut en fait passer un pointeur sur la valeur que l'on veut faire modifier à la fonction.
Dans ton cas, ce que tu veux modifier, c'est une valeur de type pointeur sur int, puisque tu alloues un tableau dentiers. Donc le paramètre de la fonction doit être un pointeur sur pointeur sur entier.
Marsh Posté le 22-04-2003 à 16:42:24
Je voudrais faire une allocation dynamique pour un tableau dans une fonction et pouvoir ensuite remplir ce tableau dans le main.
Mon problème c'est qu'à la fin d'une fonction, toute les fariables de cette fonction sont détruites donc je voit pas comment faire pour pouvoir travailler dans le tableau en dehors de la fonction.
Si kkun peut me donné un coup de pousse pour savoir quels variable je doit passé en paramètre à cette fonction etc...
J'ai déjà essayer en déclarant un pointeur dans le main, en le passant à la fonction d'allocation et en faisant l'allocation sur ce pointeur en gros : (mais ça plante qd je veux affiché *pt ds le main)
Message édité par koude le 22-04-2003 à 16:48:24