Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > C++ > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 06.07.2009, 10:28   #11
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,623
По умолчанию

Приведите весь код пожалуйста.
MaTBeu вне форума Ответить с цитированием
Старый 06.07.2009, 13:56   #12
Артэс
Форумчанин
 
Регистрация: 05.06.2007
Сообщений: 527
По умолчанию

Так и думал что дело было в extern char a[1000];

сделав так, я решил проблему:
Код:
extern char *a;

Последний раз редактировалось Артэс; 06.07.2009 в 13:59.
Артэс вне форума Ответить с цитированием
Старый 07.07.2009, 17:42   #13
volok-aleksej
 
Регистрация: 19.05.2009
Сообщений: 4
По умолчанию

Для будущего есть одна тонкость. у тебя может упасть и в другом месте, причем совсем не понятно почему. Причем в debug версии все нормально будет работать, а релиз падать. в твоем коде это я не обнаружил.
Цитата:
memset(a,0,sizeof(a)); // отщищаю для последующего приема данных
recv(connection,a,1000,0); // пытаюсь поместить данные и тут-то краш
правильней будет делать так.

memset(a,0,sizeof(сhar)*1000);
recv(connection,a,999,0);

причина проста до боли ты уже как то писал,
Цитата:
на экране отображается буква "х" и смайлик, а позже равно... что за прикол? буд-то массив не пустой создался
Так вот в debug версии на самом деле создаеться массив и автоматом обнуляеться. но вот в релиз версии это не происходит. а следовательно массив создаеться в какой- то областе где уже раньше было что записано, т.е массив непустой, а как известно решение об окончании строки выводиться на основании последнего символа 0(это int). так вот ноль этот может быть и за пределами выделенного тобой массива памяти и функция которая не принимает размер массива будет его искать и выйдет за его приделы - что произойдет? - Программа упадет, "непонятно почему"
volok-aleksej вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Имя переменной как переменная. Как получить доступ к такой переменной? Denni Microsoft Office Access 8 02.04.2009 09:06
Очистка MEMO SG13 Общие вопросы Delphi 5 23.07.2008 20:56
Очистка TImage TaTT DoGG Компоненты Delphi 2 14.05.2008 19:57
Очистка памяти в C# darkstarx Общие вопросы .NET 1 14.04.2008 13:48
Работа с файлами (создание, удаление, открытие, связываение с переменной, очищение памяти переменной) Arkuz Общие вопросы Delphi 12 25.09.2007 19:47


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS