André Hentschel wrote:
here is a case where valgrind claims about "Source and destination overlap in strcpy". snprintf(data->efcvt_buffer, 80, "%.*le", prec - 1, number); /* take the decimal "point away */ if( prec != 1)
strcpy( data->efcvt_buffer + 1, data->efcvt_buffer + 2);
{
char *src = data->efcvt_buffer + 2, *dest = data->efcvt_buffer + 1;
while ((*dest++=*src++) != 0);
}
You should use memmove instead.
Vitaliy.