× Aidez la recherche contre le COVID-19 avec votre ordi ! Rejoignez l'équipe PC Astuces Folding@home
 > Tous les forums > Forum Autres langages
 passage de tableaux en variable dans les fonctions
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
fambonne
  Posté le 30/10/2010 @ 13:53 
Aller en bas de la page 
Petit astucien

Bonjour à tous,

J'aimerais que vous m'aidiez à comprendre comment passé un tableaux d'entier en variable pour une fonction.
J'ai écrit un petit programme en C qui ne fonctionne pas, notament à cause de ce passage.
Si vous pouviez me débloquer et m'éclairer je vous en serais très reconnaissant.

Voici le code:/*
fonction sommetab qui renvoie la somme des valeurs contenues dans le tableau
*/

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

//prototype de la fonction
int Sommetab(int *tab ,int taille);
int main(void)
{
int somme,tab;
somme=Sommetab(tab,5);
printf("la somme est %d\n",somme);
return (0);
}

//description de la fonction
int Sommetab(int *tab,int taille){
int i,somme;
srand(time(NULL));
somme=0;
printf("tableau:\n");
for (i=0;i<taille;i++){
tab[i]=rand()%10;
printf("%d\n",tab[i]);
somme=somme+tab[i];
}
}

et le comilateur met:

sommetab.c: In function ‘main’:
sommetab.c:14: warning: passing argument 1 of ‘Sommetab’ makes pointer from integer without a cast
sommetab.c:10: note: expected ‘int *’ but argument is of type ‘int’

Voila bon comme ça ce n'est pas tres lisible mais bon...



Modifié par fambonne le 30/10/2010 14:03
Publicité
fambonne
 Posté le 31/10/2010 à 16:43 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Mais si on declare tab_main[10] et qu'on envoi tab_main,5 ça ne va pas faire une erreur de segmentation?

Et oui pour l'amelioration je me doute bien que c'est tout à fait possible...

Pour le moment je cherche juste à bien comprendre comment appeller des fonctions avec des tableaux etc.

Pour les commentaire avec // j'avait vu cette syntaxe quelque part et apparement elle est reconnue avec gedit donc je me suis pas posé plus de question.

Quand au somme+= je ne le connaissait pas, merci.

Donc en fait si j'ai bien saisit il faut déclarer le tableau dans le main, par exemple

int tab_main[10];

et quand on appelle la fonction, on envoi ce meme tableau avec une taille differente, par exemple

sommetab(tab_main,5);

et dans la fonction on utilise un autre nom (tab par exemple).

le truc que je ne sais jamais c'est quand on appelle la fonction, on envoit tab_main, &tab_main etc...?

fambonne
 Posté le 31/10/2010 à 17:39 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Merci je comprends mieux mes erreurs maintenant.

Encore une petite chose:

En fait tu déclares un tableau ayant une taille de 10 et tu n'en utilises

que les 5 premiers.

Pas de probleme de remplissage aléatoire ?

Et oui je doit utilisé un compilateur C++, je travaille sous linux avec gedit et gcc.

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
148 €SSD Interne M.2 NVMe Samsung 970 Evo Plus 1 To à 148 €
Valable jusqu'au 04 Décembre

Amazon fait une promotion sur le SSD Interne M.2 NVMe Samsung 970 Evo Plus 1 To qui passe à 148 € livré gratuitement. On le trouve ailleurs autour de 209 €. Ce SSD offre des taux de transfert de 3400 Mo /s en lecture et 2300 Mo/s en écriture. 


> Voir l'offre
99,99 €Disque dur externe portable Western Digital Elements USB 3.0 5 To à 99,99 €
Valable jusqu'au 04 Décembre

La Fnac propose actuellement le disque dur externe portable Western Digital Elements USB 3.0 5 To à 99,99 €. On le trouve habituellement à partir de 119 €. Ce disque dur qui tient dans la main est silencieux, ne chauffe pas et dispose d'une connectique USB 3.0 qui vous offrira des transferts rapides. Il est compatible USB 2.0. Si vous préférez, il est également disponible chez Darty au même prix et Amazon semble également s'être aligné sur le prix. Une très bonne affaire.


> Voir l'offre
99,99 €Machine à Pâtes Electrique Philips Viva Collection HR2345/2 à 99,99 €
Valable jusqu'au 04 Décembre

Amazon fait une belle promotion sur la machine à Pâtes Electrique Philips Viva Collection HR2345/29 150W qui passe à 99,99 € livrée gratuitement. On la trouve ailleurs à partir de 170 €. Cette machine va vous permettre de réaliser des pâtes fraiches rapidement et facilement. 4 disques sont présents pour réaliser spaghetti, penne, fettuccine , lasagne.


> Voir l'offre

Sujets relatifs
C mettre dans une variable resultat DOS
mysql base de données de récupération dans wampserver2
Cellules vides dans un Datagridview (VB.NET)
dossiers unknown folder dans C
Comment mettre un temps dans un Script
Ameliorer le Main "Java" avec les fonctions & procédures
Comment exclure 0 dans une fonction
forcer l'acceptation de localisation dans les paramètres de flash
Existe-t-il une affiliation dans les programmes informatiques ?
Enregistrer telle quelle la valeur d'un JPasswordField dans la BD
Plus de sujets relatifs à passage de tableaux en variable dans les fonctions
 > Tous les forums > Forum Autres langages