-1
votes

Est-il une fonction de tableau de type de données INT?

existe-t-il une fonction réellement dans C? En fait, je voulais retourner plusieurs valeur entière à la fois. Le code ci-dessous n'est pas valide évidemment mais c'est ce que je pense. Y a-t-il une autre méthode pour y parvenir? XXX


1 commentaires

Non. En enterrer votre réseau dans une structure et retourner cela. Vous en avez besoin de tout de même pour que l'appelant puisse savoir combien de résultats (le cas échéant) que vous avez trouvé (i.e. index peut également être membre de ladite structure).


3 Réponses :


1
votes

Nous pouvons envelopper le tableau dans une structure.

#define MAX_N 32

typedef struct{
    int n;
    int result[MAX_N];
} Array;

Array linearSearch(){
    Array arr;
    //do something
    return arr;
}


0 commentaires

1
votes

Vous avez déclaré résultat à l'intérieur d'une fonction comme mémoire de pile et vous renvoyez son adresse. Cette adresse ne sera pas valide après que la fonction renvoie (la mémoire allouée pour cette fonction est distribuée). Soit déclarez-le dynamiquement et renvoyez-la, il est adressé ou déclarez-le dans votre fonction d'appel et transmettez-le comme argument en tant qu'argument à linearrsearch () ou vous pouvez même le rendre global, tout comme vous pouvez pour la recherche


0 commentaires

0
votes

Maintenant, j'ai réalisé que c'est une question très stupide mais une réponse courte, non. Ce que j'ai fait est que j'ai déclaré une variable de tableau globale, puis je transmettais la valeur dans la matrice. Avec cela, je peux rappeler la valeur dans le tableau.

int marks[5] = {90, 70, 90 ,50, 40};
int search = 90;

//global variable
int result[5];
int count = 0;

void linearSearch(){
   for(int i = 0; i < 5; i++){
      if(marks[i] == search){
         result[count] = i;
         index++;
      }
   }
}


0 commentaires