begin process at 2012 02 11 02:17:56
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Fonction et Tableau


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Fonction et Tableau

vendredi 26 novembre 2004 à 18:44:32 | Fonction et Tableau

toff86

Salut !!
J'suis débutant en C. Mon probleme est le suivant:
Je sais comment fonctionne le passage de parametres d'une variable avec les foncions. Mais je ne sais pas comment cela fonctionne avec un tableau. Si quelqu'un pouvais me faire un petit tuto tout simple et si possible sans pointeurs, je suis preneur.
Merci d'avance


KRIS 83

vendredi 26 novembre 2004 à 19:41:19 | Re : Fonction et Tableau

djl

par ddéfinition on ne peut pas passer un tableau en parametre à une fonction
mais il suffit de passer un pointeur (=variable qui contient une adresse) qui contiendra l'adresse du premier element du tableau (= son nom)

/* le prototype de la fonction */
void func( int *v ); /* ou const int *v si la fonction ne modifie pas les données pointées par v */

int v[10]; /* v est l'adresse de son premier element */

/* appel */
func( v );


dans la fonction, utilise v comme un pointeur, tu peux (comme pour un tableau) acceder aux éléments avec l'opérateur []
vendredi 26 novembre 2004 à 19:42:13 | Re : Fonction et Tableau

AlexMAN

Membre Club
Passage de parametres sans parler de pointeurs, c pas possible, regarde je t'explique, je prends l'exemple d'une fonction que tu as surement du utiliser :

char strcpy(char *dest, const char *src);

lorsk tu appelles strcpy, tu fais de cette maniere :

char szdest[256];
char szsrc[] = "Coucou";

strcpy(szdest, szsrc);

Tu as passé en parametre de la fonction, tes deux tableaux...Mais la particularité du C, c que lorsk tu ecris :

szdest;

Tu designes en fait ceci : &szdest[0], qui est l'adresse du premier element du tableau, et ceci peu impote le type du tableau (int, char...etc).
Donc si tu veux passer un tableau a une fonction que tu crées toi mm, le prototype peut etre :

int coucou(int *hello);
int coucou(int hello[]);
int coucou(int hello[520]); //peu importe la 'taille ke tu mets' (ici 520), elle ne sera pas prise en compte

Ces trois ecritures sont totalement equivalentes.
Et pour l'appeler, tu feras de cette maniere :

int hello[500];

coucou(hello);

Et dans ta fonction coucou, tu utilises le tableau de la mm maniere que dans la fonction appelante :

int coucou (int *hello) {

coucou[2] = coucou[0] + coucou[1];

....
}

Pour connaitre la taille de ton tableau dans 'coucou' , il te faudra ajouter un parametre ki contiendra cette taille, paskun appel a sizeof te donnera 4 (taille d'un pointeur car ca designera, comme dit plus haut, &hello[0]). Voila :

int coucou(int *hello, int len);

Voila, j'espere avoir répondu a la question, sinon, si kelks aspects restent obscurs, n'hesite pas.

Bonne chance

++


+2(p - n)
samedi 27 novembre 2004 à 14:05:17 | Re : Fonction et Tableau

toff86

Merci a tt les deux, je vai étudier ca de plus près ainsi que les pointeurs.
@++
KRIS 83
dimanche 28 novembre 2004 à 09:38:25 | Re : Fonction et Tableau

boumarsel

void fnct(int varlocal[])
{
varlocal[0]=4;
printf("%d",varlocal[0]);
}

int main()
{
int iparam[10];
fnct(iparam);
}
jeudi 23 décembre 2004 à 15:23:02 | Re : Fonction et Tableau

globe_dk

Moi j'aurais une petite question.

Si j'ai un tableau a deux dimensions comment on fait?
parceque j'arrive pas comme ca!


void afficher(int *pTab){
printf("%d", pTab[0][0]);
}

main() {
int tab[2][5]={{1,2,3,4,5},{6,7,8,9,10}};
afficher(tab);
}

Ca ne marche pas ca et je ne comprend pas pourquoi. Il me met comme erreur : error C2664: 'afficher' : impossible de convertir le paramètre 1 de 'int [2][5]' en 'int *'


Cette discussion est classée dans : fonction, font, tableau, fonctionne, comic


Répondre à ce message

Sujets en rapport avec ce message

HWND Fonction [ par Crew209 ] Crew209J'arive pas a utilisé vos fonction :'( ! pouvez vous détaillé chaque param svp ?? Merci BOCOUP ! creer une fonction retournant un tableau [ par billcala ] 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 mafonc [TC++]PB d'affichage d'informations d'un fichier [ par kobee12 ] voici en dessous une fonction qui charge les informations d'un fichier avec la fonction Charger_Info, en faisant passer certains arguments, qui corres Redimensionner une image [ par xleureaud ] J'aimerais pouvoir agrandir et reduire une image avec une scrollbar mais je n'y arrive pas, de plus je dois afficher la valeur de la position du cuse image et curseur [ par xleureaud ] comment crée une image avec un curseur intégré dedans avec cppBuilder 5 merci Tableau de structure [ par tomsawyerbelgique ] Bonjour suriez-vous me dire comment fait-on pour passer un tableau de structure dans une fonction:struct student { char nom[10]; int nbcot REGEDIT [ par Vincman87 ] Bonjour,Je voudrait savoir comment recuperer une valeur dans la base de registre de windows pour l'utilisée dans un programme C++ !J'ai Borland C++ Bu bouton image [ par altay ] L'analyste programmeur a 3 dimensionje recherche un moyen de changer l' image d'un bouton lorsque l'on clique dessus .j'ai essayer d'ecrire le code su comment changer la couleur d'une progressbar [ par xleureaud ] j'utilise c++builder etje voudrais changer la couleur d'une progressbar mais je sais pas comment changer la couleurje ne trouve pas cette propriéte Me matrice calcul [ par altay ] L'analyste programmeur a 3 dimensionmercredi je passe un oral de math pendant lequel je doit presenter un programme de calcul matriciel et je n'ai eu


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 6,006 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales