Undefined reference to (function)
Résolu
Darkellysio
Messages postés
33
Statut
Membre
-
Darkellysio Messages postés 33 Statut Membre -
Darkellysio Messages postés 33 Statut Membre -
Bonjour à tous.
Dans le cadre d'un travail, je dois corriger un programme en C++. J'utilise Code Bloks
Celui ci est constitué :
- d'un main.cpp
- d'un sous programme.cpp
- d'un sous programme.h
J'ai bien mis #include "fonctionsUtilitaires.h" dans les deux .cpp
De même, j'ai mis dans les trois
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
Une fonction est appelée depuis le main.cpp de la manière suivante
histogramme(image,frequences[v]);
Image est un tableau à deux dimensions
Voici le prototype de la fonction dans le .h
void histogramme(int p_image[LARGEUR][HAUTEUR], int p_frequences);
Et voici la fonction dans le .cpp
void histogramme(int p_image[LARGEUR][HAUTEUR], int p_frequences[])
{
//calcule les frequences
for (int ligne = 0; ligne < HAUTEUR; ligne++)
{
for (int colonne = 0; colonne < LARGEUR; ++colonne)
{
p_frequences[p_image[ligne][colonne]]++;
}
}
}
Et voici l'erreur que j'obtiens
C:\...\main.cpp|52|undefined reference to `histogramme(int (*) [13], int)'|
Pourriez vous m'aider s'il vous plait ?
Dans le cadre d'un travail, je dois corriger un programme en C++. J'utilise Code Bloks
Celui ci est constitué :
- d'un main.cpp
- d'un sous programme.cpp
- d'un sous programme.h
J'ai bien mis #include "fonctionsUtilitaires.h" dans les deux .cpp
De même, j'ai mis dans les trois
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
Une fonction est appelée depuis le main.cpp de la manière suivante
histogramme(image,frequences[v]);
Image est un tableau à deux dimensions
Voici le prototype de la fonction dans le .h
void histogramme(int p_image[LARGEUR][HAUTEUR], int p_frequences);
Et voici la fonction dans le .cpp
void histogramme(int p_image[LARGEUR][HAUTEUR], int p_frequences[])
{
//calcule les frequences
for (int ligne = 0; ligne < HAUTEUR; ligne++)
{
for (int colonne = 0; colonne < LARGEUR; ++colonne)
{
p_frequences[p_image[ligne][colonne]]++;
}
}
}
Et voici l'erreur que j'obtiens
C:\...\main.cpp|52|undefined reference to `histogramme(int (*) [13], int)'|
Pourriez vous m'aider s'il vous plait ?
A voir également:
- Undefined reference to function
- Reference pto - Accueil - Box & Connexion Internet
- Indice de référence des loyers - Guide
- Impossible d'accéder à l'élément référencé par ce raccourci ✓ - Forum Windows
- Dans le document à télécharger, les références des pièces détachées sont affichées par pays, puis par type de pièces. réorganisez le document pour avoir : les pays dans l'ordre alphabétique : allemagne, espagne, france et italie ; et pour chaque pays, les pièces d'auto, de bateau et de moto dans cet ordre. quelle est la référence de la pièce en ligne 500 ? ✓ - Forum Windows
- Undefined traduction - Forum Javascript
2 réponses
Bonjour,
Le prototype de la fonction histogramme n'est pas cohérent...
Dans le.h, tu dis que le deuxième argument est un int et dans le cpp, tu mets un pointeur. Attention aussi à voir pour l'appel.
Note : studio.h et stdlib.h c'est du C...
Le prototype de la fonction histogramme n'est pas cohérent...
Dans le.h, tu dis que le deuxième argument est un int et dans le cpp, tu mets un pointeur. Attention aussi à voir pour l'appel.
Note : studio.h et stdlib.h c'est du C...
Bonjour
frequence[v] n'est pas un pointeur mais le vième élément du tableau fréquences non ?
C'est quoi les équivalents sous C++ stp ? J'ai étudié le C au premier semestre et ait un peu trop pris l'habitude de mettre stdlib et stdio.
frequence[v] n'est pas un pointeur mais le vième élément du tableau fréquences non ?
C'est quoi les équivalents sous C++ stp ? J'ai étudié le C au premier semestre et ait un peu trop pris l'habitude de mettre stdlib et stdio.
frequence[v] n'est pas un pointeur
Cela dépend de la déclaration du type de la variable frequence. Ici vu le contexte, oui je pense qu'il s'agit du v+1ème élément du tableau.
Mais ma remarque ne portait pas sur ça.
Voici le prototype de la fonction dans le .h
void histogramme(int p_image[LARGEUR][HAUTEUR], int p_frequences);
Et voici la fonction dans le .cpp
void histogramme(int p_image[LARGEUR][HAUTEUR], int p_frequences[])
Il y a une incohérence entre les deux prototypes. Il faut choisir entre : int p_frequences et int p_frequences[].
Si tu souhaites envoyé un entier : int frequence. Si tu souhaites envoyer un pointeur (on ne peut pas passer de tableau en C) : int p_frequences[].
L'équivalent sous C++ de stdio.h est iostream, et celui de stdlib.h est cstdlib
Cdlt,
Cela dépend de la déclaration du type de la variable frequence. Ici vu le contexte, oui je pense qu'il s'agit du v+1ème élément du tableau.
Mais ma remarque ne portait pas sur ça.
Voici le prototype de la fonction dans le .h
void histogramme(int p_image[LARGEUR][HAUTEUR], int p_frequences);
Et voici la fonction dans le .cpp
void histogramme(int p_image[LARGEUR][HAUTEUR], int p_frequences[])
Il y a une incohérence entre les deux prototypes. Il faut choisir entre : int p_frequences et int p_frequences[].
Si tu souhaites envoyé un entier : int frequence. Si tu souhaites envoyer un pointeur (on ne peut pas passer de tableau en C) : int p_frequences[].
L'équivalent sous C++ de stdio.h est iostream, et celui de stdlib.h est cstdlib
Cdlt,