При копировании данных из одного массива в другой последний элемент копируется с мусорными значениями. Как это устранить?
Добавь в конце строки символ окончания строки(имеет код 0). А ещё копировать лучше с помощью strncpy
А ты уверен, что память не портится у тебя в setStr() копирование идёт только если длинна строки >  длинны буфера, и копируешь ты всю строку целиком, попутно создавая повреждение памяти. Ну и про \0 символ тебе уже написали выше. Вообще есть strdup() но он вне стандарта.