Название: мусор в строке Отправлено: ixtorio от Март 30, 2011, 18:44 написав класс, я наткнулся на проблему, в конец строки добавляется мусор. Самое смешное, что я не понимаю откуда он берется так, как я выделяю определенное адресное пространство под строку не больше, не меньше.
Собственно сам код(Прокомментировал, чтоб быстрее можно было разобраться в коде) _BruteDleParam_ Код
Если можете то объясните более разжеванно чтоб понятно было как действовать в таких ситуациях Название: Re: мусор в строке Отправлено: Пантер от Март 30, 2011, 18:53 А где ты создаешь Server?
Название: Re: мусор в строке Отправлено: ixtorio от Март 30, 2011, 18:56 this->pConnect.Server = (char*)malloc(len);
ZeroMemory(this->pConnect.Server,sizeof(this->pConnect.Server)); int len это длина строки Название: Re: мусор в строке Отправлено: Пантер от Март 30, 2011, 19:04 1. this->pConnect.Server = (char*)malloc(len + 1); или strncpy(this->pConnect.Server,Host,len - 1);
2. ZeroMemory(this->pConnect.Server,sizeof(this->pConnect.Server) * len); Название: Re: мусор в строке Отправлено: ixtorio от Март 30, 2011, 19:40 Не получилось..
Даже если посмотреть 1: мы выделяем память на размер строки + 1 2: обнуляем память от начало до размера строки(sizeof(server)) * размер строки(len) полюбому не то что-то) Название: Re: мусор в строке Отправлено: Fat-Zer от Март 30, 2011, 19:44 не проще ли, чем обнулять память заранее, обнулить байт после копирования:
this->pConnect.Server[len] = 0; Название: Re: мусор в строке Отправлено: ixtorio от Март 30, 2011, 19:47 Спасибо. Все получилось
|