retourner un tableau

Bonjour, j'aimerai retourner un tableau dans une fonction, donc je sais qu'une fonction ne le permets pas,d'aprés quelques ptites recherches, il me reste soit l'utilisation de structure soit l'allocation dynamique.
j'ai commencé par utiliser malloc mais ca ne marche pas comme je le souhaite, j'ai fait une erreur quelque part , je vous mets le code :

int Verif_params_cycle( int * number_cycles , size_t taille_tab ){

  
    number_cycles = malloc(taille_tab * sizeof(int));


      switch(floor_number)
      {
        case 1: if(cycle_state == true ) {

                    Serial.print("un cycle est dejà en cours");
                  
               }
               else{
                  Serial.print("Lancement de cycle :   ");
                  Verif_params_gen();
                  Verif_pH(); 
                 number_cycles[0]++; // incremennter le nb de cycle dans l'etage 1.
                  Serial.print("\t");
                  Serial.print("number_cycles[0]++");
                  Serial.print(number_cycles[0]);
               }
      
          break;
        case 2:
                if(cycle_state == true ) {
                  
                    Serial.print("un cycle est dejà en cours");
          
              }
                else{
                 Verif_params_gen();
                 Verif_pH();
                number_cycles[1]++;
               }
      
          break;    
    }


         return number_cycles;
    
  
}

oor_number est une var globale pas de probleme
dans la fonction loop je fais :

int nbr_cycles[2] = {0,0};
Verif_params_cycle( nbr_cycles[0] , 2 );

et j'obtiens :

number_cycles[0]++6
number_cycles[0]++7
.
.
.

Merci d'avance !

Ta fonction Verif_params_cycle admet en paramètre l'adresse d'un tableau d'entiers.

Or dans ton appel, tu lui passes la première cas du tableau, donc un entier :

Verif_params_cycle( nbr_cycles[0] , 2 );
// ceci serait plus correct
Verif_params_cycle( nbr_cycles , 2 );

Ensuite tu écrases number_cycles par un appel à malloc().
Pour quoi faire étant donné que cette variable contient déjà l'adresse d'un tableau valide, passé par l'appelant.

Ensuite tu retournes number_cycles, qui est l'adresse d'un tableau, alors que ta fonction est censée retourner un int !

Elle devrait être déclarée comme ceci :

int *Verif_params_cycle( int * number_cycles , size_t taille_tab )

Ensuite, pourquoi retourner number_cycles alors que la fonction appelante loop() connaît déjà ce tableau, puisqu'elle passe nbr_cycles en paramètre.

Si j'avais un conseil à te donner : utilise des variables globales.

Remarque : le compilateur avr ne te signale pas toutes les erreurs. Si tu compilais avec le compilateur ESP8266, tu serais moins à la fête.

Merci hbachetti je l'ai mi en variable globale est c a m'a simplifié la tache !

Retourner un tableau, c'est pas dur :

lesept:
Retourner un tableau, c'est pas dur :

Ah! Ca y est : la chaleur a frappé !
lesept (bonjour) : il faut boire !

Cordialement,
bidouilleelec

Ou sortir la tête par la fenêtre :

Attention à ne pas trop boire, sinon :

lesept:
Ou sortir la tête par la fenêtre :

Attention à ne pas trop boire, sinon :

Avec quoi on peut créer ces effets faire cela sous windows ?

Cordialement,
bidouilleelec

Il y en a qui ont essayé. Ils ont eu des problèmes.
Chevallier et Laspalès

Trop drole ..