[C] Problème de compilation

For the bird -  
 Lavomatik -
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   Statut Membre Dernière intervention   663
 
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
 
une partie de la solution réside
que sous mac il faut ajouter
#include <stdlib.h>
-1
Lavomatik
 
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   Statut Membre Dernière intervention   17
 
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   Statut Membre Dernière intervention   663
 
je ne pense pas que ceci cause un bus error à l'exécution.
0
nobie-cs Messages postés 155 Date d'inscription   Statut Membre Dernière intervention   17 > Pacorabanix Messages postés 3248 Date d'inscription   Statut Membre Dernière intervention  
 
:( oups j'ai dit une gros con*** SORRY
0