Problème boucle for en C
Fermé
Ouss91
-
Modifié le 24 janv. 2021 à 11:31
Ouss91 Messages postés 35 Date d'inscription dimanche 24 janvier 2021 Statut Membre Dernière intervention 20 juillet 2021 - 24 janv. 2021 à 18:08
Ouss91 Messages postés 35 Date d'inscription dimanche 24 janvier 2021 Statut Membre Dernière intervention 20 juillet 2021 - 24 janv. 2021 à 18:08
A voir également:
- Problème boucle for en C
- Downloader for pc - Télécharger - Téléchargement & Transfert
- Copytrans heic for windows - Télécharger - Visionnage & Diaporama
- Idm for mac - Télécharger - Téléchargement & Transfert
- Download instagram for pc - Télécharger - Divers Communication
- Whatsapp for pc - Télécharger - Messagerie
8 réponses
M3NSONG3
Messages postés
615
Date d'inscription
mardi 16 avril 2013
Statut
Membre
Dernière intervention
4 novembre 2021
162
24 janv. 2021 à 11:55
24 janv. 2021 à 11:55
Salut !
Ta fonction main est de type int (comme toujours), tu dois donc renvoyer un entier à la fin.
0 veut dire qu'il n'y a pas d'erreur, et un autre nombre si. Rajoute donc un return 0; à la fin de ta fonction main pour commencer :p
Ta fonction main est de type int (comme toujours), tu dois donc renvoyer un entier à la fin.
0 veut dire qu'il n'y a pas d'erreur, et un autre nombre si. Rajoute donc un return 0; à la fin de ta fonction main pour commencer :p
Salut,
du coup j'ai rajouté un return 0;
mais quand je compile le fichier string.c, la même erreur (comme quoi il manque un main())
:/
du coup j'ai rajouté un return 0;
mais quand je compile le fichier string.c, la même erreur (comme quoi il manque un main())
:/
M3NSONG3
Messages postés
615
Date d'inscription
mardi 16 avril 2013
Statut
Membre
Dernière intervention
4 novembre 2021
162
24 janv. 2021 à 13:03
24 janv. 2021 à 13:03
Et tu compiles le tout comment ? Car on dirait que tu essayes de compiler indépendamment ton autre fichier, et donc forcément il te crie dessus car il trouve pas la fonction main.
Par exemple avec gcc tu dois forcément commencer par ton fichier main.
Par exemple avec gcc tu dois forcément commencer par ton fichier main.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Exemple pour la compilation du main.c : gcc -o main main.c
Je complie chaque fichier, pas forcément dans un ordre précis.
Comment compiler du coup?
Je complie chaque fichier, pas forcément dans un ordre précis.
Comment compiler du coup?
et quand je compile main.c, ca affiche bien "Entrer la chaine de caractères : " mais après plus rien...
Dalfab
Messages postés
706
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
2 novembre 2023
101
Modifié le 24 janv. 2021 à 18:07
Modifié le 24 janv. 2021 à 18:07
Bonjour,
Il n'y a pas d'ordre. Il faut compiler tous les fichiers et un seul doit avoir la fonction main().
Tu peux aussi bien séparer les 2 compilations et l'édition des liens en l'écrivant en 3 lignes : les 2 premières produisent des fichiers objets (.o) la dernière relie le tout en un executable.
Il n'y a pas d'ordre. Il faut compiler tous les fichiers et un seul doit avoir la fonction main().
gcc -o nom_du_programme string.c main.c
Tu peux aussi bien séparer les 2 compilations et l'édition des liens en l'écrivant en 3 lignes : les 2 premières produisent des fichiers objets (.o) la dernière relie le tout en un executable.
gcc -g -Wall -c main.c gcc -g -Wall -c string.c gcc -Wall main.o string.o -o nom_du_programme
Ouss91
Messages postés
35
Date d'inscription
dimanche 24 janvier 2021
Statut
Membre
Dernière intervention
20 juillet 2021
Modifié le 24 janv. 2021 à 18:10
Modifié le 24 janv. 2021 à 18:10
Bonjour Dalfab,
Merci pour ta réponse !
En utilisant ta ligne de compilation (gcc -o nom_du_programme string.c main.c), j'obients l'erreur suivante : multiple definition of `my_strlen'; /tmp/cckbVTUH.o:string.c:(.text+0x0): first defined here
collect2: error: ld returned 1 exit status
Voici les codes :
main.c
#include<stdio.h>
#include<string.h>
#include "/home/debian/Algorithmique/AlgoAvancé/TP1/string.c"
int main(){
char chaineChar[]={'o','k','\0'};
printf("Entrer une chaîne de caractères : ");
scanf("%s", chaineChar);
printf("%s", "Il y a ", my_strlen(chaineChar), " caractères.\n");
return 0;
}
string.c
#include<stdio.h>
#include<string.h>
int my_strlen(char tab[])
{
int nbChar = 0;
for (int i=0; tab[i] != '\0'; i++)
{
nbChar++;
}
return nbChar;
}
Merci pour ta réponse !
En utilisant ta ligne de compilation (gcc -o nom_du_programme string.c main.c), j'obients l'erreur suivante : multiple definition of `my_strlen'; /tmp/cckbVTUH.o:string.c:(.text+0x0): first defined here
collect2: error: ld returned 1 exit status
Voici les codes :
main.c
#include<stdio.h>
#include<string.h>
#include "/home/debian/Algorithmique/AlgoAvancé/TP1/string.c"
int main(){
char chaineChar[]={'o','k','\0'};
printf("Entrer une chaîne de caractères : ");
scanf("%s", chaineChar);
printf("%s", "Il y a ", my_strlen(chaineChar), " caractères.\n");
return 0;
}
string.c
#include<stdio.h>
#include<string.h>
int my_strlen(char tab[])
{
int nbChar = 0;
for (int i=0; tab[i] != '\0'; i++)
{
nbChar++;
}
return nbChar;
}