[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
Configuration: Mac OS X
Safari 531.21.10

3 réponses

  1. Pacorabanix Messages postés 4122 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
  2. For the bird
     
    une partie de la solution réside
    que sous mac il faut ajouter
    #include <stdlib.h>
    -1
    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
  3. nobie-cs Messages postés 157 Statut Membre 17
     
    une petit return (0); après strcat("hello","world"); sa peut résoudre ton problème
    -1
    1. Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention   663
       
      je ne pense pas que ceci cause un bus error à l'exécution.
      0
      1. nobie-cs Messages postés 157 Statut Membre 17 > Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention  
         
        :( oups j'ai dit une gros con*** SORRY
        0