billcala
Messages postés3Date d'inscriptionmercredi 13 août 2003StatutMembreDernière intervention14 août 2003
-
13 août 2003 à 17:03
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 2012
-
14 août 2003 à 00:21
j'essaie de créer une fonction qui doit initialiser un tableau d'entiers : le code que je fais est :
int mafonction()[8];
using namespace std;
int mafonction()
{
int kaboum[8]={1,2,3,4,5,6,7,8};
cout<<"Kaboum 4 : "<<kaboum[4];
return kaboum[];
}
int main()
{
int tableau[8];
tableau=mafonction;
system("PAUSE");
return 0;
}
devc++ me renvoie : `mafonction' declared as function returning an array
HCJarod
Messages postés221Date d'inscriptionmardi 12 août 2003StatutMembreDernière intervention11 décembre 20081 13 août 2003 à 17:57
Une étoile est rester coincer dans le clavier...
essai plutot ça...
int* mafonction();//récupère pointeur sur entier
using namespace std;
int* mafonction()
{
int kaboum[8]={1,2,3,4,5,6,7,8};//kaboum=pointeur sur l'adresse de base de ton tableau
cout<<"Kaboum 4 : "<<kaboum[4];
return kaboum;//revoie l'adresse de base de ton tableau
}
int main()
{
int tableau[8];
tableau=mafonction;
system("PAUSE");
return 0;
}
le seule question est : est ce que kaboum, variable locale, n'est pas "détruit"? Si oui, tu peux récupérer ton tableau tant qu'il n'a pas été écraser. Vue que je sais pas trop, j'espère qu'un autre répondra à cette intérrogation
a+
HCJarod
Messages postés221Date d'inscriptionmardi 12 août 2003StatutMembreDernière intervention11 décembre 20081 13 août 2003 à 18:08
decidement je suis pas en forme aujourd'hui, essai ça pour la troisième fois et je pense que c'est la bonne. A demain, j'ai du boulot...
int* mafonction();//récupère pointeur sur entier
using namespace std;
int* mafonction()
{
int kaboum[8]={1,2,3,4,5,6,7,8};//kaboum=pointeur sur l'adresse de base de ton tableau
cout<<"Kaboum 4 : "<<kaboum[4];
return kaboum;//revoie l'adresse de base de ton tableau
}
int main()
{
int tableau[8];
strcpy(tableau,mafonction);
system("PAUSE");
return 0;
}
a+
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20123 14 août 2003 à 00:21
Salut,
bon...
1) strcpy : seulement pour chaine de caracteres terminées par null, surtout pas int ou autre.
2) tu ne peux pas retourner le tableau créé dans 'mafonction', car comme Kaid l'a dis plus haut, ton tableau n'est accessible que depuis la fonction.
Moi je te donne une version avec pointeurs... la fonction ne retourne pas un tableau, mais elle remplie 'tableau' avec les valeurs de 'kaboum'.
#include <stdio.h>
int mafonction(int * pArray) // arg: pointeur sur tableau d'int
{
int kaboum[8]={1,2,3,4,5,6,7,8};
for(int i=0; i<8; i++)
*(pArray+i) = kaboum[i];
return 0;
}
int main()
{
int tableau[8];
mafonction(tableau);
return 0;
}