View Full Version : [C] Aiutatemi se no impazzisco: strcat
Perché non funziona????
typedef char * word;
int main(void){
word w1 = (word)calloc(1000, sizeof(char));
w1="pluto";
word w2 = (word)calloc(1000, sizeof(char));
w2="pippo";
strcat(w1,w2);
system("PAUSE");
return 0;
}
Mi va in segmentation fault la chiamata a strcat....:muro: :muro: :muro:
Ziosilvio
30-10-2007, 12:11
Perché non funziona????
typedef char * word;
int main(void){
word w1 = (word)calloc(1000, sizeof(char));
w1="pluto";
strcpy(w1,"pluto");
word w2 = (word)calloc(1000, sizeof(char));
w2="pippo";
strcpy(w2,"pippo");
strcat(w1,w2);
system("PAUSE");
return 0;
}
Mi va in segmentation fault la chiamata a strcat....:muro: :muro: :muro:
Perché, come fai tu, prima fai puntare w1 a una regione di memoria allocata, ma poi la fai puntare a un'altra zona, che ha sei caratteri di cui il sesto nullo, e poi non si sa.
Grazie mille. Queste sono le cose che mi fanno perdere in un bicchier d'acqua...
ne approfitto, quando si ha segmentation fault? in che casi? grazie.
In generale quando si cerca di accedere ad uno spazio di memoria non allocato, ma lascio la parola agli esperti.
marko.fatto
30-10-2007, 18:19
Quando si tenta di accedere a una zona di memoria non accessibile o si cerca di scrivere in una zona di sola lettura...
trallallero
31-10-2007, 07:42
ne approfitto, quando si ha segmentation fault? in che casi? grazie.
basta un semplice
printf("%s", 1);
In generale quando si cerca di accedere ad uno spazio di memoria non allocato, ma lascio la parola agli esperti. non potevi dirlo meglio. ci sono sedicenti esperti* che avrebbero imbastito tutt'altre bestialità, tipo che il processo tenta di scrivere ad un indirizzo di memoria che appartiene ad un altro processo e cose simili :D
* ad es. l'esercitatore di Programmazione 1 che avevo al primo anno :asd:
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.