Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Chiarimento su strcat
Forum - C/C++ - Chiarimento su strcat

Avatar
bios1993 (Normal User)
Pro


Messaggi: 64
Iscritto: 18/01/2009

Segnala al moderatore
Postato alle 14:34
Lunedì, 27/09/2010
Scusate ragazzi io ho una domanda da farvi e cioè perchè se io ho due vettori di caratteri da 100 in cui la destinataria non è inizializzata invece il sorgente  ha un valore tipo "ciao", perchè il programma si blocca?

Codice sorgente - presumibilmente C/C++

  1. char test[100];
  2. char parola[100] = "ciao";
  3. strcat(test,parola); // qui si blocca il programma!



Io avrei un opinione e vorrei sapere se è corretta:

(penso sia corretta) perchè il vettore ha caratteri sporchi e perciò non puo essere appesa nessuna stringa

Ultima modifica effettuata da bios1993 il 27/09/2010 alle 14:35
PM
Avatar
lumo (Member)
Expert


Messaggi: 449
Iscritto: 18/04/2010

Up
2
Down
V
Segnala al moderatore
Postato alle 14:50
Lunedì, 27/09/2010
Testo quotato

Postato originariamente da bios1993:

Scusate ragazzi io ho una domanda da farvi e cioè perchè se io ho due vettori di caratteri da 100 in cui la destinataria non è inizializzata invece il sorgente  ha un valore tipo "ciao", perchè il programma si blocca?


char test[100];
char parola[100] = "ciao";
strcat(test,parola); // qui si blocca il programma!


Io avrei un opinione e vorrei sapere se è corretta:

(penso sia corretta) perchè il vettore ha caratteri sporchi e perciò non puo essere appesa nessuna stringa


esattamente, infatti in questo caso strcat non trova il delimiter "\0" che si usa nelle stringhe per segnarne la fine. Per far funzionare quel codice dovresti fare
Codice sorgente - presumibilmente C/C++

  1. char test[100];
  2. char parola[100] = "ciao";
  3. test[0]='\0';
  4. /* o meglio
  5. strcpy( parola, "ciao" );
  6. memset( test, 0, 100*sizeof(char) );
  7. */
  8. strcat( test, parola );


Ultima modifica effettuata da lumo il 27/09/2010 alle 14:51
PM
Avatar
bios1993 (Normal User)
Pro


Messaggi: 64
Iscritto: 18/01/2009

Up
0
Down
V
Segnala al moderatore
Postato alle 20:43
Lunedì, 27/09/2010
grazie per la risposta se stato molto utile!

PM