Столкнулся с совершенно дурацкой проблемой.
void A (char *str)
{
char *dest = (char *)malloc (len);
if (!dest)
...
memcpy (dest, str, sz);
...
free (dest);
}
main ()
{
char *xxx = "abc";
A (xxx);
}
в результате в A() после memcpy содержимое dest имеет вид: "abc\004\b\004\b" плюс какой-то мусор. sz меньше len. Причем такая фигня иногда проявлятся, иногда нет. Компилятор - gcc, система FreeBSD 4.2. Может кто-то с чем-то подобным встречался или краем уха слышал.
Форум —
Development
