Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [C] La funzione strcat()

    Non ce la faccio a concatenare due stringhe... Mi ritorna sempre l'errore Segmentation fault.
    char * path;
    char * com;
    path= "";
    com= "";
    path = strcat(path,"/bin/");
    path = strcat(path,com);
    printf("%s",path);
    come mai???? e soprattutto che vuol dire Segmentation fault.

  2. #2
    leggi: http://www.cplusplus.com/reference/c...string/strcat/

    la stringa di destinazione deve essere allocata, a priori, in modo tale da essere sufficientemente lunga da poter contenere tutta la sequenza di caratteri concatenati che vuoi metterci

    le tue stringhe non hanno una dimensione sufficiente, il risultato è che la stringcat cerca comunque di scrivere nella variabile path, ma poiché non c'è allocato abbastanza spazio finisce con lo scrivere in aree di memoria non previste e in cui non ha il permesso di agire -> segmentation fault
    all that you need:
    http://www.cplusplus.com/reference/clibrary/

  3. #3
    ehm... non ho mai allocato una variabile in vita mia....

    mi daresti una mano a capire come si fa'?
    Grazie mille!

  4. #4
    le funzioni di base sono
    malloc
    e
    free


    Ad ogni modo ti consiglio però di prenderti un manuale e studiarti prima a fondo tutta la parte di allocazione e deallocazione, che nel C è fondamentale conoscere prima di mettersi a lavorare con qualsivoglia tipo di puntatore e di stringa(char*).
    Non è una questione che ti si possa spiegare esaustivamente in un post su un forum
    all that you need:
    http://www.cplusplus.com/reference/clibrary/

  5. #5
    ok capisco! Grazie mille lo stesso...
    Sei stato molto utile!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.