Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
очищается ли память массива после выхода из цикла или при переходе на следующий шаг цикла?
|
|||
|---|---|---|---|
|
#18+
Объявляю массив в цикле, что будет происходить при каждом шаге? Очистится ли уже ненужный и создастся новый буфер ? Не будет ли утечки? Здесь бывают случаи когда буфер может быть не полностью забит, а только какая та его часть. Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2015, 14:46 |
|
||
|
очищается ли память массива после выхода из цикла или при переходе на следующий шаг цикла?
|
|||
|---|---|---|---|
|
#18+
Не будет утечки. Память будет выделена в стэке во время компиляции . Буфер будет один. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2015, 14:49 |
|
||
|
очищается ли память массива после выхода из цикла или при переходе на следующий шаг цикла?
|
|||
|---|---|---|---|
|
#18+
Картежник, не обнуляется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2015, 14:50 |
|
||
|
очищается ли память массива после выхода из цикла или при переходе на следующий шаг цикла?
|
|||
|---|---|---|---|
|
#18+
Dima TНе будет утечки. Память будет выделена в стэке во время компиляции . Буфер будет один. ок значит получается если на втором(len2) этапе цикла будет получено меньше данных чем в первом(len1), то то в массиве после данных второго этапа останутся не затертые данные из первого? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2015, 14:51 |
|
||
|
очищается ли память массива после выхода из цикла или при переходе на следующий шаг цикла?
|
|||
|---|---|---|---|
|
#18+
Картежник, да даже и на первой итерации в буфере будет случайный мусор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2015, 14:54 |
|
||
|
очищается ли память массива после выхода из цикла или при переходе на следующий шаг цикла?
|
|||
|---|---|---|---|
|
#18+
Картежник, 1) На каждой итерации цикла вы имеете дело с новым массивом содержащим мусор (содержит ли этот мусор куски предыдущих массивов совершенно не важно - это просто мусор) 2) Утечек никаких нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2015, 14:57 |
|
||
|
очищается ли память массива после выхода из цикла или при переходе на следующий шаг цикла?
|
|||
|---|---|---|---|
|
#18+
КартежникDima TНе будет утечки. Память будет выделена в стэке во время компиляции . Буфер будет один. ок значит получается если на втором(len2) этапе цикла будет получено меньше данных чем в первом(len1), то то в массиве после данных второго этапа останутся не затертые данные из первого? Скорее всего так и будет, это на усмотрение компилятора, теоретически он может давать разные куски памяти, но технически ему проще всего давать каждый раз один и тот же кусок. Кроме того учти что при первом проходе там будет не пусто (нули), а какой-то мусор. Т.к. локальные переменные не инициализируются автоматом. Формально после каждого прохода массив buf выходит за область его видимости, уничтожается и создается заново в начале следующего прохода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2015, 15:00 |
|
||
|
очищается ли память массива после выхода из цикла или при переходе на следующий шаг цикла?
|
|||
|---|---|---|---|
|
#18+
Проверяется элементарно: Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2015, 15:03 |
|
||
|
очищается ли память массива после выхода из цикла или при переходе на следующий шаг цикла?
|
|||
|---|---|---|---|
|
#18+
Dima TПроверяется элементарно: Вы же понимаете, что если вы постучали в бубен, и после того пошел дождь, то это не значит что каждый раз после бубна будет дождь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2015, 15:25 |
|
||
|
очищается ли память массива после выхода из цикла или при переходе на следующий шаг цикла?
|
|||
|---|---|---|---|
|
#18+
КартежникDima TНе будет утечки. Память будет выделена в стэке во время компиляции . Буфер будет один. ок значит получается если на втором(len2) этапе цикла будет получено меньше данных чем в первом(len1), то то в массиве после данных второго этапа останутся не затертые данные из первого? Да. Такое возможно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2015, 17:52 |
|
||
|
очищается ли память массива после выхода из цикла или при переходе на следующий шаг цикла?
|
|||
|---|---|---|---|
|
#18+
Картежник, вам всё правильно сказали (память выделится в стеке, утечки не будет, т.к. массив не инициализирован - в нём мусор. После первой итерации там вполне возможно - и скорее всего - будут "старые данные с предыдущей итерации", но это не гарантируется). От себя добавлю - вы случайно можете выйти за пределы массива. Картежник Код: plaintext 1. 2. 3. 4. 5. если n окажется больше MAX_BUF_SIZE - 1. Компилятор по этому поводу не ругнётся. Если ограничитесь только чтением, то даже работать почти наверняка будет ( получая "левые" данные). Если попробуете писать (много) - скорее всего скрэшится по доступу к памяти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2015, 22:34 |
|
||
|
очищается ли память массива после выхода из цикла или при переходе на следующий шаг цикла?
|
|||
|---|---|---|---|
|
#18+
BagaBagaОт себя добавлю - вы случайно можете выйти за пределы массива. если n окажется больше MAX_BUF_SIZE - 1. А Вас не смущает, что i никогда не применяется к buf, а только к совсем другим массивам?.. То, что размер принятых данных аффтар совершенно игнорирует (очевидно, наивно полагая, что буфер всегда принимается сразу и полностью) - совсем другой вопрос. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2015, 22:54 |
|
||
|
очищается ли память массива после выхода из цикла или при переходе на следующий шаг цикла?
|
|||
|---|---|---|---|
|
#18+
BagaBagaОт себя добавлю - вы случайно можете выйти за пределы массива. если n окажется больше MAX_BUF_SIZE - 1. Компилятор по этому поводу не ругнётся. Если ограничитесь только чтением, то даже работать почти наверняка будет ( получая "левые" данные). Если попробуете писать (много) - скорее всего скрэшится по доступу к памяти. Dimitry SibiryakovА Вас не смущает, что i никогда не применяется к buf, а только к совсем другим массивам?.. То, что размер принятых данных аффтар совершенно игнорирует (очевидно, наивно полагая, что буфер всегда принимается сразу и полностью) - совсем другой вопрос. вы оба не поняли что за массивы sock и buf,для чего они и т.д. и что n относится к sock, а MAX_BUF_SIZE к buf и они не зависят друг от друга ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 06:13 |
|
||
|
очищается ли память массива после выхода из цикла или при переходе на следующий шаг цикла?
|
|||
|---|---|---|---|
|
#18+
думаю решение простое. сам не понял как массив у меня оказался внутри цикла, видимо копипаст Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 06:22 |
|
||
|
очищается ли память массива после выхода из цикла или при переходе на следующий шаг цикла?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovА Вас не смущает, что i никогда не применяется к buf, а только к совсем другим массивам?.. То, что размер принятых данных аффтар совершенно игнорирует (очевидно, наивно полагая, что буфер всегда принимается сразу и полностью) - совсем другой вопрос. ой извиняюсь, как раз вы все правильно сказали ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 06:29 |
|
||
|
очищается ли память массива после выхода из цикла или при переходе на следующий шаг цикла?
|
|||
|---|---|---|---|
|
#18+
Картежникдумаю решение простое. сам не понял как массив у меня оказался внутри цикла, видимо копипаст Код: plaintext 1. 2. 3. 4. 5. 6. а от такого перемещения ничего не меняется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 07:27 |
|
||
|
очищается ли память массива после выхода из цикла или при переходе на следующий шаг цикла?
|
|||
|---|---|---|---|
|
#18+
Картежникдумаю решение простое. сам не понял как массив у меня оказался внутри цикла, видимо копипаст Код: plaintext 1. 2. 3. 4. 5. 6. Ну вот теперь-то len точно может (специально или по недосмотру) превзойти MAX_BUF_SIZE-1. И даже стать отрицательным :). ЗЫ Да, в прошлый раз невнимательно посмотрел. Но в любом случае размер приёмника и источника лучше проверять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 11:22 |
|
||
|
очищается ли память массива после выхода из цикла или при переходе на следующий шаг цикла?
|
|||
|---|---|---|---|
|
#18+
BagaBagaКартежникдумаю решение простое. сам не понял как массив у меня оказался внутри цикла, видимо копипаст Код: plaintext 1. 2. 3. 4. 5. 6. Ну вот теперь-то len точно может (специально или по недосмотру) превзойти MAX_BUF_SIZE-1. И даже стать отрицательным :). ЗЫ Да, в прошлый раз невнимательно посмотрел. Но в любом случае размер приёмника и источника лучше проверять. аха, понял, переделаю так Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 12:07 |
|
||
|
очищается ли память массива после выхода из цикла или при переходе на следующий шаг цикла?
|
|||
|---|---|---|---|
|
#18+
Картежникаха, понял Нихрена ты не понял. Открой уже справку по recv() и посмотри что он может возвращать. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 13:00 |
|
||
|
очищается ли память массива после выхода из цикла или при переходе на следующий шаг цикла?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovКартежникаха, понял Нихрена ты не понял. Открой уже справку по recv() и посмотри что он может возвращать. ну я так думаю что recv() возвращает кол-во полученных символов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 14:47 |
|
||
|
очищается ли память массива после выхода из цикла или при переходе на следующий шаг цикла?
|
|||
|---|---|---|---|
|
#18+
Картежникя так думаю Думать вредно. Читай доку. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 15:08 |
|
||
|
очищается ли память массива после выхода из цикла или при переходе на следующий шаг цикла?
|
|||
|---|---|---|---|
|
#18+
КартежникDimitry Sibiryakovпропущено... Нихрена ты не понял. Открой уже справку по recv() и посмотри что он может возвращать. ну я так думаю что recv() возвращает кол-во полученных символов он 0 может вернуть и -1, это надо обрабатывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 15:10 |
|
||
|
очищается ли память массива после выхода из цикла или при переходе на следующий шаг цикла?
|
|||
|---|---|---|---|
|
#18+
Dima Tон 0 может вернуть и -1, это надо обрабатывать. Более того, он вообще может не вернуть ничего. Если не отключен SIGPIPE )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 15:14 |
|
||
|
очищается ли память массива после выхода из цикла или при переходе на следующий шаг цикла?
|
|||
|---|---|---|---|
|
#18+
Dima TКартежникпропущено... ну я так думаю что recv() возвращает кол-во полученных символов он 0 может вернуть и -1, это надо обрабатывать. аха это я начал обрабатывать, 0 - значит отключен, делаю disconnect(sock[i]);sock[i]=-1; -1 - ничего не пришло. вот если я отключаю клиент после первого send, то на сервер продолжает приходить -1. если я на сервере буду дисконектить сокет клиента после получения -1, то возможно когда клиент еще не успел выполнить первый send он будет отключен. как узнать когда клиент отключился? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 16:01 |
|
||
|
очищается ли память массива после выхода из цикла или при переходе на следующий шаг цикла?
|
|||
|---|---|---|---|
|
#18+
Картежниккак узнать когда клиент отключился? может все-таки послушать советы Dimitry SibiryakovДумать вредно. Читай доку. и начать читать как ошибки обрабатывать? https://www.google.ru/search?q=recv() https://msdn.microsoft.com/en-us/library/windows/desktop/ms740121(v=vs.85).aspx http://www.opennet.ru/man.shtml?topic=recv&category=2&russian=0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2015, 16:09 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=38883472&tid=2018446]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
65ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 274ms |
| total: | 443ms |

| 0 / 0 |
