Я согласен с mweerden. Пробуя что-то похожее на ваш код, я получаю:
(gdb) print cwd
$1 = "/media", '\0' <repeats 782 times>, "\016���" ...
(gdb) print (char*) cwd
$2 = 0xbfc8eb84 "/media"
из gdb, поэтому, похоже, что cwd
был определен как char cwd[3500]
, gdb печатает весь массив, а если вы скажете gdb интерпретировать его как char*
, он будет работать так, как вы ожидаете. Если ваше приложение падает, я предполагаю, что это из-за чего-то другого.