ANTICHAT Forum
HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
НОВЫЕ ТОРГОВАЯ НОВОСТИ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1001  
Старый 20.04.2008, 16:14
criz
Постоянный
Регистрация: 04.11.2007
Сообщений: 303
С нами: 9746420

Репутация: 119
По умолчанию

Может так?
Код:
strcpy(message_buf[i], argv[i]);

и вот этого, я думаю будет достаточно:
Код:
 delete []message_buf;

Последний раз редактировалось criz; 20.04.2008 в 16:17..
 
Ответить с цитированием

  #1002  
Старый 20.04.2008, 16:38
ZipaCna
Познающий
Регистрация: 29.02.2008
Сообщений: 66
С нами: 9577447

Репутация: 33
По умолчанию

Цитата:
Сообщение от criz  
Может так?
Код:
strcpy(message_buf[i], argv[i]);

и вот этого, я думаю будет достаточно:
Код:
 delete []message_buf;

criz, извени конечно, но ты не прав...

strcpy(message_buf[i], argv[i]) - это опасная конструкция и она подвержена переполнению, так как не проверяет входящую строку на длинну...так что надо юзать именно strncpy.

delete []message_buf; - одного этого не достаточно, надо очиститть память и для каждого элемента...

Последний раз редактировалось ZipaCna; 20.04.2008 в 16:42..
 
Ответить с цитированием

  #1003  
Старый 20.04.2008, 17:15
criz
Постоянный
Регистрация: 04.11.2007
Сообщений: 303
С нами: 9746420

Репутация: 119
По умолчанию

ясно
Просто ты указываешь
Код:
sizeof(argv[argc])
, а это 4 байта. Вот я и решил не ограничиваться 4мя байтами
 
Ответить с цитированием

  #1004  
Старый 20.04.2008, 17:37
ZipaCna
Познающий
Регистрация: 29.02.2008
Сообщений: 66
С нами: 9577447

Репутация: 33
По умолчанию

Цитата:
Сообщение от criz  
ясно
Просто ты указываешь
Код:
sizeof(argv[argc])
, а это 4 байта. Вот я и решил не ограничиваться 4мя байтами
кстате да спасибо , тут тоже ошибка надо было sizeof(argv[i])

но весь трабл не в этом ..... =((


при выделении памяти под элименты масива не зависимо от того что я передам в argv код

for(int u=0;argv[u] != NULL;u++)message_buf[u]=new char[sizeof(argv[u])];

выделяет по 4 байта.... попробуйте собрать этот исходник под виндой и скажите проблема такая же??

Последний раз редактировалось ZipaCna; 20.04.2008 в 17:40..
 
Ответить с цитированием

  #1005  
Старый 20.04.2008, 17:59
Forcer
Постоянный
Регистрация: 12.04.2007
Сообщений: 413
С нами: 10042776

Репутация: 275
По умолчанию

argv[i] - указатель. sizeof от указателя = 4. Юзай strlen().
 
Ответить с цитированием

  #1006  
Старый 20.04.2008, 20:01
ZipaCna
Познающий
Регистрация: 29.02.2008
Сообщений: 66
С нами: 9577447

Репутация: 33
По умолчанию

Цитата:
Сообщение от Forcer  
argv[i] - указатель. sizeof от указателя = 4. Юзай strlen().
Спасибо ошибку понял. Все работает.
 
Ответить с цитированием

  #1007  
Старый 21.04.2008, 01:01
Loker
Познающий
Регистрация: 25.10.2007
Сообщений: 69
С нами: 9760218

Репутация: 52
По умолчанию

Ребят помогите.
Нужен любой код бинарного дерева ( чтоб добавлять, удалять редактировать.) На С++.
ПРосто любой рабочий, обыскал моно сказать все и ни как если есть у кого вылоите плз.
 
Ответить с цитированием

  #1008  
Старый 21.04.2008, 01:40
De-visible
Banned
Регистрация: 06.01.2008
Сообщений: 904
С нами: 9655526

Репутация: 1821


По умолчанию

_http://forum.vingrad.ru/forum/s/34d46f3f9f3c02ea59529320070694a3/topic-99013/anchor-entry1469467/0.html
_http://programmersforum.ru/showthread.php?p=92241
_http://alglib.sources.ru/sorting/heapsort.php
_http://forum.codenet.ru/showthread.php?t=44506 (паскаль, на всякий случай)
 
Ответить с цитированием

  #1009  
Старый 21.04.2008, 01:56
reversys
Участник форума
Регистрация: 22.11.2007
Сообщений: 159
С нами: 9721086

Репутация: 156
По умолчанию

да set в STL используй!
 
Ответить с цитированием

  #1010  
Старый 21.04.2008, 22:38
Forcer
Постоянный
Регистрация: 12.04.2007
Сообщений: 413
С нами: 10042776

Репутация: 275
По умолчанию

reversys
насколько я понимаю, ему нужно для обучения а не для работы. Или ты ему для обучения предлагаешь код этого stl-кого сета взять?
Loker
Если очень нужно, в среду могу написать, если будет время. А вообще - посмотри по ссылкам которые дали.
 
Ответить с цитированием
Ответ



Предыдущая тема Следующая тема
Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Часто задаваемые вопросы по MySQL Серый PHP 5 28.12.2006 18:26
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости. Обсуждения. 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Уязвимости CMS / форумов 26 15.02.2005 22:57



Здесь присутствуют: 3 (пользователей: 0 , гостей: 3)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.