|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Apr 2006
Messaggi: 36
|
[c] - realloc per stringhe
Salve gente, ho bisogno di un aiuto!!
Ho allocato memoria per una stringa char *pippo = (char*)malloc(n_caratteri*sizeof(char)); strcpy(pippo,"stringa di partenza"); se ora volessi inserire tra 'stringa' e 'di' un'altra parola devo riallocare spazio? riallocando ho avuto problemi : pippo = realloc(pippo,n_caratteri+nuovi_caratteri); ovvero mi stampa caratteri strani. Se invece uso direttamente memmove per spostare 'di partenza' e poi uso memcpy per copiare la nuova parola, senza riallocare funziona. Spero di essermi spiegato grazie a tutti |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Eccoti un esempio:
Codice:
int n_caratteri;
char *pippo;
n_caratteri = 20;
pippo = (char*) malloc (n_caratteri * sizeof (char));
strcpy (pippo, "stringa di partenza");
printf ("%s\n", pippo);
n_caratteri += 6;
pippo = (char*) realloc (pippo, n_caratteri * sizeof (char));
memmove (&pippo[8+6], &pippo[8], strlen (&pippo[8])+1);
strncpy (&pippo[8], "prova ", 6);
printf ("%s\n", pippo);
free (pippo);
stringa di partenza stringa prova di partenza
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:31.



















