Piojolopez2406
10-05-2007, 13:46
Salve ragazzi sto incontrando nell stasera di un programmino che riceve in input una stringa e la memorizza dinamicamente, poi la copia con una memcpy in un altra stringa.
#include <stdio.h>
#include<string.h>
#include <stdlib.h>
void main ()
{
char *Pstringa;
char *STRINGA;
int a;
Pstringa = malloc( _MAX_PATH );
puts("scrivi caratteri: ");
gets(Pstringa);
puts("la stringa e': ");
printf("%s\n",Pstringa);
puts("la stringa memorizzata con 'memcpy' e': ");
a=strlen(Pstringa);
STRINGA=malloc(a);
memcpy(STRINGA,Pstringa,a);
printf("%s\n",STRINGA);
puts("la stringa memorizzata con 'memmove' e': ");
memmove(STRINGA,Pstringa,a);
printf("%s\n",STRINGA);
system("pause");
}
L'output del programma è il seguente:
scrivi caratteri:
valerio
la stringa e':
valerio
la stringa memorizzata con 'memcpy' e':
valerio²²²²
la stringa memorizzata con 'memmove' e':
valerio²²²²
Premere un tasto per continuare . . .
non mi riesco a rendere conto perche in seguito alla memcpy e alla memmove la stringa mi compare "sporcata " da quei 4 caratteri finali....graiz per la cortese attenzione
#include <stdio.h>
#include<string.h>
#include <stdlib.h>
void main ()
{
char *Pstringa;
char *STRINGA;
int a;
Pstringa = malloc( _MAX_PATH );
puts("scrivi caratteri: ");
gets(Pstringa);
puts("la stringa e': ");
printf("%s\n",Pstringa);
puts("la stringa memorizzata con 'memcpy' e': ");
a=strlen(Pstringa);
STRINGA=malloc(a);
memcpy(STRINGA,Pstringa,a);
printf("%s\n",STRINGA);
puts("la stringa memorizzata con 'memmove' e': ");
memmove(STRINGA,Pstringa,a);
printf("%s\n",STRINGA);
system("pause");
}
L'output del programma è il seguente:
scrivi caratteri:
valerio
la stringa e':
valerio
la stringa memorizzata con 'memcpy' e':
valerio²²²²
la stringa memorizzata con 'memmove' e':
valerio²²²²
Premere un tasto per continuare . . .
non mi riesco a rendere conto perche in seguito alla memcpy e alla memmove la stringa mi compare "sporcata " da quei 4 caratteri finali....graiz per la cortese attenzione