Модераторы: xvr
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите разобраться 
:(
    Опции темы
Sollo
Дата 13.2.2006, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 10.2.2006

Репутация: нет
Всего: нет



Есть вот такой вот код
Код

bool res = false;
        char buf[MAXLINE];
        char  b_site[40],b_place[40],*b_path,prototype[160];               
        b_path = new char [160];
        recv(handle,buf,MAXLINE,0);
        printf("\n Hello \n");
                             strcpy(b_site,strtok(buf,":"));
                             strcpy(b_place,strtok(NULL,":"));
        strcat(b_path,b_site);
        strcat(b_path,"/");
        strcat(b_path,b_place);
        strcat(prototype,"/");
        strcat(prototype,b_place);
        strcat(prototype,".ini");
        printf(b_path);
        printf("/===============/");
        printf(prototype);


И при выполнении вот такой вот результат

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К©©жз и как я могу от них отделаться помогите пожалуйста уже хрен знает сколько мучаюсь....

Это сообщение отредактировал(а) Sollo - 13.2.2006, 17:00
PM MAIL   Вверх
Бонифаций
Дата 13.2.2006, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 827
Регистрация: 15.9.2005
Где: Brisbane

Репутация: 1
Всего: 40



инициализация b_path?


--------------------
 Бонифаций.
 
PM MAIL ICQ Skype GTalk Jabber YIM   Вверх
Adil'
Дата 13.2.2006, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 311
Регистрация: 26.8.2004
Где: Питер

Репутация: нет
Всего: 15



1. применение strcat к неинициализированной (хотя бы одним 0-терминатором в начале) строке чревато. Ведь strcat бежит по строке и
ищет ее конец, а что при prototype[160];, что при b_path = new char [160]; в строке будет сидеть мусор. Или написать
*prototype=*b_path = 0; или при первых копированиях использовать strcpy.
2. Лучше проверять, что возвращает strtok - я не уверен, что второй вызов strtok(NULL,":") для строки " hellon:hanny" не вернёт NULL.


--------------------
Удачи
PM MAIL WWW   Вверх
Sollo
Дата 15.2.2006, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 10.2.2006

Репутация: нет
Всего: нет



Всем ребята спасибо я нашёл другое решение етой проблемы ..... я просто сделал таким образом
Код

size_buf = recv(handle,buf,MAXLINE,0);
         char res1[size_buf+1]; 
         for (i = 0;i < size_buf;i++) {
              res1[i] = buf[i];
             }       


и уже в масиве res1 небыло никакого мусора .... =)))
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




[ Время генерации скрипта: 0.0461 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.