[C] Problème de compilation

Fermé
For the bird - 26 nov. 2009 à 21:48
 Lavomatik - 31 août 2011 à 15:22
Bonsoir,
J'ai un petit problème le programme suivant ne compile euuh non ça s'execute mal

#include <stdio.h>
#include <dirent.h>
#include <string.h>

int main(void)
{
strcat("hello","world");
}


Pourtant je fait un Gcc sur mon (mac ceci explique peut être cela ...)

Resultat ça compile et apres execution
=>> Bus error

merci de m'aider si vous avez la solution ou de me dire si ça compile et tourne chez vous
Cordialement

3 réponses

Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 661
26 nov. 2009 à 22:55
pour strcat la deuxième chaine est copiée à la suite de la première... mais pour cela il faut que la première soit une variable ! (de type char*).

En fait le message est une erreur de mémoire.

tu ne peux pas assigner qqchose à une constante.

Ceci est valide :
#include<stdio.h>
#include<string.h>
int main (void){
    char phrase[50] = "Hello";
    strcat(phrase, " World!");
    
    printf("%s\n", phrase);
    getchar();
} 
2
For the bird
26 nov. 2009 à 22:51
une partie de la solution réside
que sous mac il faut ajouter
#include <stdlib.h>
-1
il n'est pas necessaire d'inclure stdlib.La seule fonction utilisée ici est strcat,contenue dans string.h.Ainsi la seule directive de préprocesseur utile ici est #include <string.h>,le reste est superflu.
0
nobie-cs Messages postés 155 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 15 mai 2010 17
26 nov. 2009 à 22:58
une petit return (0); après strcat("hello","world"); sa peut résoudre ton problème
-1
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 661
26 nov. 2009 à 23:01
je ne pense pas que ceci cause un bus error à l'exécution.
0
nobie-cs Messages postés 155 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 15 mai 2010 17 > Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013
26 nov. 2009 à 23:04
:( oups j'ai dit une gros con*** SORRY
0