Tableau dans fonction

Tableau dans fonction - C++ - Programmation

Marsh Posté le 09-02-2014 à 21:17:18    

Bonjour,

 

J'ai un petit soucis avec mon programme.
Après avoir initialisé mes tableaux et les avoir passer dans la fonction pour les remplir j'ai un gros soucis lors de la compilation.... Ma fonction passe au oubliett :/
Et même si je prend le code de ma fonction et que je la colle dans mon main... Ce que je rentre dans mon tableau est pas pris en compte. Le tableau me renvoie toujours 0 :'(

 

Voici mon code

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <iostream>
  4. #define TAILLE 3
  5. using namespace std;
  6. void reception(int *tab){
  7. int i;
  8. while(i<TAILLE){
  9.  cout<<"Ecrire :\n";
  10.  cin>>tab[i];
  11.  i++;
  12. }
  13. }
  14. main(){
  15. int * col1 = new int [TAILLE];
  16. int * col2 = new int [TAILLE];
  17. int * stock = new int [TAILLE];
  18. int * vente = new int [TAILLE-1];
  19. reception(col1);
  20. //reception(col2);
  21. //reception(stock);
  22. //reception(vente);
  23. for(int i=0;i<TAILLE;i++){
  24. cout<<col1[i]<<"\n";
  25. }
  26. delete [] col1;
  27. delete [] col2;
  28. delete [] stock;
  29. delete [] vente;
  30. }
 

Merci du coup e de main


Message édité par OrcusZ le 09-02-2014 à 21:18:38

---------------
Made you your own sentence without believing that of the others...
Reply

Marsh Posté le 09-02-2014 à 21:17:18   

Reply

Marsh Posté le 10-02-2014 à 01:41:09    

Code :
  1. void reception(int *tab){
  2.     int i = 0;


Si i n'est pas initialisé, le premier test de boucle peut donner n'importe quoi.
 
d'autre part, c'est pas bon, cette fonction qui prend un paramètre caché! Et qui en plus va faire foirer l'appel reception(vente);

Code :
  1. void reception(int *tab, int size){
  2.     int i = 0;
  3.     while(i<size){
  4. cout << "Ecrire :\n";
  5. cin >> tab[i];
  6. i++;
  7.     }
  8. }
  9. ................
  10. reception(col1, TAILLE);
  11. ..
  12. reception(vente, TAILLE-1);


 
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 10-02-2014 à 09:17:56    

Haha, j'ai tourner ça pendant je sais pas combien de temps et j'ai pas vu que j'avais pas initialisé mon i :x
 
Par contre je ne comprend pas pourquoi vous parler de paramètre caché pour la taille??
 
J'ai bien définie la taille en tant que #define ( pour la changer selon mes besoins )
 
En tout cas merci, c'est toujours sympas d'avoir un oeil extérieur :)


---------------
Made you your own sentence without believing that of the others...
Reply

Marsh Posté le 10-02-2014 à 12:10:11    

Bonjour !
 
Le paramètre est caché dans la mesure où la fonction se base sur le fait qu'elle connait par ailleurs la taille du tableau, sans que celle-ci lui soit passée en paramètre.
 
Dans le cas de votre tableau "vente", qui n'a pas la même taille que les autres (et, élément aggravant dans ce cas, une taille inférieure), l'utilisation de cette fonction entrainera des effets de bord.
 
Bonne continuation !

Reply

Marsh Posté le 10-02-2014 à 12:35:32    

Bonjour,
 
Merci pour l'explication.


---------------
Made you your own sentence without believing that of the others...
Reply

Sujets relatifs:

Leave a Replay

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