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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> проблема с переписыванием проги с С++ на С 
V
    Опции темы
ama_kid
Дата 30.5.2008, 17:31 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

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



Avreol, код ужасный имхо. Только постоянный вызов  malloc без free чего стоит (зато один раз вызвал free без malloc, гыы)... В одном месте два раза вызывается выделение памяти на один объект!... Ужоснах! smile 
Короче, когда тебе советуют что-то сделать - надо делать с осмыслением того, что ты делаешь применительно к твоей ситуации smile Исправляй в функции h_tree_unpack:
Код
static struct h_tree *t=root;
на просто:
Код
static struct h_tree *t;
потому что... просто обрати внимание на следующую строку кода:
Код
if(t==NULL) t=root;
Она и выполнит тебе функцию static-инициализации, а то, что я изначально предлагал - это немного другое поведение...


--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
Avreol
Дата 30.5.2008, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



о!)) заработало))))) щас буду сам код править)))))) спасибо большое всем за помощь)
 smile 

PM MAIL WWW ICQ   Вверх
bronislav
Дата 30.5.2008, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Вот кусок кода из приведенного выше
Код

void h_tree_print( struct h_tree **mass_t, int N )
{
    int i;
    for( i = 0; i < N; i++ );
    printf("Symbol %c  - Frequerency - %d\n",mass_t[i]->c,mass_t[i]->count);
}

Вопрос: Зачем здесь цикл? Нельзя было написать так:
Код

printf("Symbol %c  - Frequerency - %d\n",mass_t[N]->c,mass_t[N]->count);

?
Мне кажется, что этот код писал не автор топика, а просто был откуда-то содран. Отсюда и не понимание работы программы. 

Это сообщение отредактировал(а) bronislav - 30.5.2008, 18:09


--------------------
user posted image
иногда проще и быстрей обойти лужу, даже если кажется что она мелкая и путь напрямик короче - ведь она может скрывать открытый люк (с) mes
PM MAIL   Вверх
Avreol
Дата 30.5.2008, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



bronislav, так и есть  smile 

ЗЫ кстати если есть еще какие советы напишите пожалуйста))
ЗЗЫ извините за наглость smile 

Это сообщение отредактировал(а) Avreol - 30.5.2008, 18:36
PM MAIL WWW ICQ   Вверх
bronislav
Дата 30.5.2008, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Avreol @  30.5.2008,  17:31 Найти цитируемый пост)
bronislav, так и есть

Вы хоть постарайтесь разобраться в алгоритме.
Толковое описание архивации методом Хаффмана можно найти здесь.

Это сообщение отредактировал(а) bronislav - 30.5.2008, 18:35


--------------------
user posted image
иногда проще и быстрей обойти лужу, даже если кажется что она мелкая и путь напрямик короче - ведь она может скрывать открытый люк (с) mes
PM MAIL   Вверх
Avreol
Дата 30.5.2008, 18:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



ну алгоритм я знаю)) просто с языком у меня проблемы :/
я как то больше люблю php да javascript..
PM MAIL WWW ICQ   Вверх
bronislav
Дата 30.5.2008, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Avreol @  30.5.2008,  17:39 Найти цитируемый пост)
я как то больше люблю php да javascript.. 

Не типизированные языки не есть гуд ИМХО.


--------------------
user posted image
иногда проще и быстрей обойти лужу, даже если кажется что она мелкая и путь напрямик короче - ведь она может скрывать открытый люк (с) mes
PM MAIL   Вверх
Avreol
Дата 30.5.2008, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



наверно)))
можете еще по коду что-то посоветовать?
PM MAIL WWW ICQ   Вверх
ama_kid
Дата 30.5.2008, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

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



Цитата(Avreol @  30.5.2008,  19:36 Найти цитируемый пост)
можете еще по коду что-то посоветовать? 
1) Приведи в соответствие количество malloc и free, дабы избежать утечек памяти (это тебе не пхп с его автоматическим разгребанием мусора).
2) Старайся освобождать память в той же зоне видимости, где и выделил её.
3) Имена переменных l,N,y,k etc - не самые понятные вещи в твоем коде.
4) Избавляйся от пристрастия к магическим числам


--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

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

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


 




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


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

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