C help plz :(

Fermé
juli - 2 juin 2008 à 15:45
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 - 2 juin 2008 à 18:04
Bonjour,

j'ai un problème avec un programme en C.

en fait j'en ai plusieurs.

1er Problème :

j'ai créé un fichier test.h qui contient les prototypes de deux fonctions

void absord(int ordonnees[14], char abscisses[15][20]);
void affi();

Dans mon fichier test.c j'implémente ces deux fonctions :
#include "test.h"
void absord(int ordonnees[14], char abscisses[15][20])
{
code...
}

void affi()
{
code....
}




Dans mon fichier main.c si j'inclue le test.h
et que je fais un appel de ma fonction affi par exemple

#include <stdio.h>
#include <stdlib.h>
#include "creationdesfichiers.h"

int main()
{


affi;
return 0;
}


il me dit :
undefined reference to `_affi

Je ne comprends pas j'ai lu sur plusieurs sites qu'il fallait inclure les .h or cela ne marche pas... :( inclure le .c me semble bizarre.


Autre problème :

Ma fonction void absord(int ordonnees[14], char abscisses[15][20]) prend en paramètre deux tableaux.
Or il m'affiche n'importe quoi pour le tableau de char.

Lorsque je fais
int tableau [15];
... remplissage du tableau d'integer (je le mets pas pour pas allourdir la page et car celui la fonctionne).

char tableau2[15][14] = {"15h15","15h30","15h45","16h00","16h15","16h30","16h45","17h00","17h15","17h30","17h45","18h00","18h15","18h30","18h45"};

puis

absord(tableau, tableau2);

Il m'affiche n'importe quoi....

ma fonction absord fait une boucle for avec un printf à chaque tour.

6 réponses

j'ai oublié les parenthèses je fais l'appel comme ceci bien sûr dans le main affi();
0
help
0
si c'est pour dire ca c'est pas la peine merci....
0
Ipsec Messages postés 11 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 6 juin 2008 1
2 juin 2008 à 16:45
Euh est-ce que tu poourrai expliquer pourquoi tu passe en parametre des entiers et non des tableaux?:
void absord(int ordonnees[14], char abscisses[15][20]); 

int tab[0] // c'est un entier
int tab[] // c'est un tableau(int * tab aussi)

Pareil pour char...

Ton en-tete devrai etre plus:

void absord(int * ordonnees, char ** abscisses);//En ayant bien sur la taille qui traine en variable globale sinon tu l'ajoute a ton prototye ;)

Apres je n'ai pas trop regardé le reste mais sa devrai déja t'aider un peu ;)
0
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
2 juin 2008 à 18:03
dans l'en-tete de la fonction on peut tres bien mettre int ordonne[14] puisque c'est une declaration tu confonds avec l'appel de fonction...
donc le parametre de cette fonction ce sont bien des tableaux declaré en statique
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ok merci je regarde ca.
Je pensais qu'il fallait indiquer la taille du tableau c'est pour ca que j'ai mis
char abscisses[15][20] dans la définition de la fonction.
0
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
2 juin 2008 à 18:04
ton fichier .h il est bien dans le meme repertoire que ton executable ?
0