| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Программирование под Unix/Linux > Помогите разобраться |
| Автор: Sollo 13.2.2006, 16:59 | ||
Есть вот такой вот код
И при выполнении вот такой вот результат hellon/hanny "(,Л©©xy"(8К©©ш (xy"(pdК©©жз (/===============//hanny "(,Л©©xy"(8К©©ш (xy"(pdК©©жз (.ini а всё произходит очень просто покрайней мере на мой взгляд. У меня задание получить строку разбить её и составить из неё путь вида b_site+'/'+b_place+'/'+b_place+'.ini'. При етом в сокет я передаю строчку hellon:hanny и я не могу понять от куда у меня в буфере нарисовуються вот ети символы "(,Л©©xy"(8К©©ш (xy"(pdК©©жз и как я могу от них отделаться помогите пожалуйста уже хрен знает сколько мучаюсь.... |
| Автор: Бонифаций 13.2.2006, 17:06 |
| инициализация b_path? |
| Автор: Adil' 13.2.2006, 17:30 |
| 1. применение strcat к неинициализированной (хотя бы одним 0-терминатором в начале) строке чревато. Ведь strcat бежит по строке и ищет ее конец, а что при prototype[160];, что при b_path = new char [160]; в строке будет сидеть мусор. Или написать *prototype=*b_path = 0; или при первых копированиях использовать strcpy. 2. Лучше проверять, что возвращает strtok - я не уверен, что второй вызов strtok(NULL,":") для строки " hellon:hanny" не вернёт NULL. |
| Автор: Sollo 15.2.2006, 13:08 | ||
Всем ребята спасибо я нашёл другое решение етой проблемы ..... я просто сделал таким образом
и уже в масиве res1 небыло никакого мусора .... =))) |