passer un pointeur en parametre sans initialiser avant?

passer un pointeur en parametre sans initialiser avant? - C++ - Programmation

Marsh Posté le 08-12-2005 à 14:57:25    

salut, est ce qu'il est possible de passer un pointeur en parametre sans initialiser avant? en fortran je sais que c'est possible en utilisant un truc genre nullify mais j'aimerai trouver un equivalent en c/c++
ex:

Code :
  1. void mafonction(int *v,int n)
  2. {
  3. v=new int[n];
  4. }
  5. //------
  6. int main(int argc,char** argv)
  7. {
  8. int n;
  9. int* vect;
  10. mafonction(vect,n); //Dans laquelle je vais allouer ce qu'il faut pour mon vect?
  11. ...
  12. delete ...
  13. }

:jap:


---------------
--- WinSplit Revolution ---
Reply

Marsh Posté le 08-12-2005 à 14:57:25   

Reply

Marsh Posté le 08-12-2005 à 15:08:42    

Nan c'est pas possible, (enfin oui mais ton cas ne va pas marcher). Le mieux c'est de faire comme ca (avec une reference) :

Code :
  1. void mafonction(int*& v, int n)
  2. {
  3.    v = new int[n];
  4. }
  5. ...
  6. int* vect;
  7. mafonction(vect, n);


Je n'est pas testé mais apriori ca devrai marcher :)

Reply

Marsh Posté le 08-12-2005 à 15:21:40    

heu.. nan ca ne marche pas  [:pingouino]


---------------
--- WinSplit Revolution ---
Reply

Marsh Posté le 08-12-2005 à 15:37:27    

euh... ca c'est bon chez moi (gcc) :

Code :
  1. void mafonction(int*& v, int n)
  2. {
  3.    v = new int[n];
  4.    for(int i = 0; i<n; i++)
  5.       v[i] = i;
  6. }
  7. #include <iostream>
  8. using namespace std;
  9. int main()
  10. {
  11.    int n = 4;
  12.    int* vect;
  13.    mafonction(vect, n);
  14.    for(int i = 0; i<n; i++)
  15.       cout << vect[i] << endl;
  16. }

Reply

Marsh Posté le 08-12-2005 à 15:55:23    

attend je matte ca de plus pres   [:huit]


---------------
--- WinSplit Revolution ---
Reply

Marsh Posté le 08-12-2005 à 16:00:08    

vivi ca marche  [:_astrid] , en fait je me j'avais un deuxieme vecteur en parametre il devait subir le meme sort (oubli).  
Merci :jap:


---------------
--- WinSplit Revolution ---
Reply

Marsh Posté le 08-12-2005 à 16:12:08    

La mieux est d'utiliser un vector...


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 08-12-2005 à 16:39:42    

ok je vais regarder ca aussi


---------------
--- WinSplit Revolution ---
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed