C help plz :(

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.
Configuration: Windows XP
Internet Explorer 7.0

6 réponses

  1. j'ai oublié les parenthèses je fais l'appel comme ceci bien sûr dans le main affi();
    1. 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 ;)
      1. 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
    2. 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.
      1. ton fichier .h il est bien dans le meme repertoire que ton executable ?