Un pointeur pour pouvoir retourner un tableau

Résolu/Fermé
gh - 7 janv. 2009 à 16:41
 gh - 7 janv. 2009 à 17:45
bonjour à tous

Je veux faire une fonction en c++ qui me permettra de retourner un tableau d'entier, et suivant ce que j'ai compris, ceci n'est possible qu'avec un pointeur, mais je n'ai pas compris exactement comment faire pour remplir un tableau avec ce pointeur et qu'est ce que je dois écrire dans la fonction pour qu'elle me permette de retourner ce tableau.est ce que vous pouvez me donner un exemple simple en C++ pour comprendre

Merci pour votre aide.
A voir également:

4 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
7 janv. 2009 à 17:01
Salut,
Par exemple
int *initTab(const int n) {
     int *t=malloc(n*sizeof *t);
     if(t==NULL) return NULL;
     
     for(int i=0;i<n;i++) t[i]=i;
     return t;
}

Et pour l'appeler : int *tab=initTab(5);
Cdlt
3
Un exemple qui retourne un tableau d'entier initialisé avec une certaine valeur:
int* initialiseTableau (int nbElement, int valeurInit)
{
   int* tableau = malloc (12 * sizeof(int));  // L'appelant devra libérer la mémoire par 'free(pointeur);'
   for (int i=0; i<nbElement; i++)
      tableau[i] = valeurInit;

int main ()
{
   int* tableau = initialiseTableau (12, 8); // Tableau de 12 entiers initialisés avec la valeur 8
   ...
   // C'est dans cette fonction qu'il faudra libérer la mémoire
}
2
merci beaucoup pour vos réponses.
Mais est ce que c'est possible d'insérer une valeur dans ce tableau avec les pointeurs, sans le remplir :c'est à dire au lieu de faire une fonction remplir, est ce que je peux faire une fonction insert dans laquelle je vais inérer un seul élément dans le tableau?
merci.
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
7 janv. 2009 à 17:37
Oui. Tu peux.
void insert(int *t,const int indice, const int valeur) {
      t[indice]=valeur;
}
Ou tout simplement dans ta fonction principale : tab[indice] = valeur;
0
merci beaucoup pour votre aide, votre réponse a résolu mon problème,
merci.
0