|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Не буду ничего советовать. Просто кажется что ты окончательно выбрал "C" как инструмент написания этого Proof-Of-Concept, хотя по идее надо было его сналача обкатать даже на shell-скриптах или Python и посмотреть где там что первое умрёт. Обежден что проблемы сетью и ошибки тебя похоронят. Просто закопаешся в нюансах. По мультипоточке - создай отдельный топик обязательно. Это будет длинная тема... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2022, 00:58 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
mayton Не буду ничего советовать. Просто кажется что ты окончательно выбрал "C" как инструмент написания этого Proof-Of-Concept, хотя по идее надо было его сналача обкатать даже на shell-скриптах или Python и посмотреть где там что первое умрёт. Обежден что проблемы сетью и ошибки тебя похоронят. Просто закопаешся в нюансах. По мультипоточке - создай отдельный топик обязательно. Это будет длинная тема... На баше отработано. Немного другая архитектура и нагрузка на сеть меньша раз в 20 примерно, но суть такая же. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2022, 00:59 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Ура, удалось получить Segmentation fault когда закомментировал выделение памяти в массиве, что ожидаемо: Код: plaintext 1.
Но настораживает отсутствие Segmentation fault даже когда N=0, даже когда прямо 0 прописываю: Код: plaintext 1.
все равно нет ошибок. Не пойму почему так... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2022, 01:03 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
После каждого творческого эксперимента запускай свой бинарь под valgrind. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2022, 01:05 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Уткъ На баше отработано. Немного другая архитектура и нагрузка на сеть меньша раз в 20 примерно, но суть такая же. Даже не буду спрашивать как вы там ошибки отрабатываете и retry-logic. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2022, 01:06 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
mayton Уткъ На баше отработано. Немного другая архитектура и нагрузка на сеть меньша раз в 20 примерно, но суть такая же. Даже не буду спрашивать как вы там ошибки отрабатываете и retry-logic. чуть что kill -9 и все бояться и работает хорошо ) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2022, 01:18 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Вы почти создали Erlang/OTP. Ну дай бог. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2022, 01:21 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Уткъ Ура, удалось получить Segmentation fault когда закомментировал выделение памяти в массиве, что ожидаемо: Код: plaintext 1.
Уткъ Но настораживает отсутствие Segmentation fault даже когда N=0, даже когда прямо 0 прописываю: Код: plaintext 1.
все равно нет ошибок. Не пойму почему так... Но ты что ты выделил ноль байт - означает что если ты начнешь в эту память писать - ты залезешь в пространство другого указателя который выдал тебе другой malloc(); Например: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Чаще всего, ты обращаясь к b залезешь в память c, но может быть и в a - это зависит от менеджера памяти (который предоставляется твоим компилятором). ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2022, 07:43 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Уткъ Читаю про массивы структур. Это круто. Но меня смущает что там ни где не выделяют и не высвобождают память: https://metanit.com/cpp/c/6.4.php Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Ну и меня насторажило что не выпало ни разу сегментайшн фаулт, с массивом структур. Если кратко: память для переменных может выделятся на стеке и в куче . Когда явно выделяешь (malloc()), то выделяется в куче, неявно - на стеке. В основном на стеке располагаются локальные переменные, но ничто не мешает массив там расположить как в данном примере. Только имей ввиду что стек маленький, всего 1Мб обычно. Если будешь большие массивы там хранить, то словишь переполнение стэка (stack overflow) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2022, 08:37 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
White Owl Уткъ Ура, удалось получить Segmentation fault когда закомментировал выделение памяти в массиве, что ожидаемо: Код: plaintext 1.
Уткъ Но настораживает отсутствие Segmentation fault даже когда N=0, даже когда прямо 0 прописываю: Код: plaintext 1.
все равно нет ошибок. Не пойму почему так... Но ты что ты выделил ноль байт - означает что если ты начнешь в эту память писать - ты залезешь в пространство другого указателя который выдал тебе другой malloc(); Например: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Чаще всего, ты обращаясь к b залезешь в память c, но может быть и в a - это зависит от менеджера памяти (который предоставляется твоим компилятором). Теперь понятно, благодарю :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2022, 09:53 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Dima T Уткъ Читаю про массивы структур. Это круто. Но меня смущает что там ни где не выделяют и не высвобождают память: https://metanit.com/cpp/c/6.4.php Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Ну и меня насторажило что не выпало ни разу сегментайшн фаулт, с массивом структур. Если кратко: память для переменных может выделятся на стеке и в куче . Когда явно выделяешь (malloc()), то выделяется в куче, неявно - на стеке. В основном на стеке располагаются локальные переменные, но ничто не мешает массив там расположить как в данном примере. Только имей ввиду что стек маленький, всего 1Мб обычно. Если будешь большие массивы там хранить, то словишь переполнение стэка (stack overflow) Как все не просто оказалось, хорошо что 0 попробовал поставить. Спасибо :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2022, 09:54 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Кстати, в чистом Си есть исключения? типа Код: plaintext 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2022, 09:56 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Уткъ Кстати, в чистом Си есть исключения? типа Код: plaintext 1. 2. 3. 4. 5. 6.
Нет. В С++ есть ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2022, 09:58 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Dima T Уткъ Кстати, в чистом Си есть исключения? типа Код: plaintext 1. 2. 3. 4. 5. 6.
Нет. В С++ есть Жалко. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2022, 10:50 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Терпи Сам выбрал. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2022, 11:35 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
mayton Терпи Сам выбрал. Ага.... Получается после каждой опасной команды надо статус выполнения проверять и обрабатывать если что-то нет так идет... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2022, 11:47 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Совершенно верно. Почти все функции kernel возвращают результат. В виде целого числа. Или в виде NULL/not NULL указателя. И твоя обязанность как С-разработчика всегда проверять этот результат. Открыл файл через fopen - тут-же проверил. Отпавил пачку данных в сокет через send - тут-же проверил на (-1) и так далее. С функциями libpq - тоже самое. Проверяй вообще все что можно проверять. Игнорировать это правило можно только в тех языках где механика exceptions позволяет сделать обобщённые обработчики ошибок для целых блоков кода или целых стеков. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2022, 11:59 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Уткъ Dima T пропущено... Нет. В С++ есть Жалко. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2022, 12:41 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Когда никто не выкидывает исключений - некому их и ловить. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2022, 13:46 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Когда блок catch ничего не делает - складывается ощущение что ... Все... Чики-пики ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2022, 14:01 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Уткъ Пока нарисовал строки. "A" - это 1 символ. Если объявлять строку символов в тексте ("Ц"), то "компилятор умный" и нулевой байт добавит. Если работать с char-массивами, то "плюсадын и (временами) \0". Как-то так. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2022, 14:44 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Добрый день. в 1000 потоков не хочет: connection to server failed: could not create socket: Too many open files похоже коннекты как-то файлы занимают в ОС... А подскажите что еще занимать файлы? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2022, 16:11 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Эта поведение не связано с С++. Особенности ОС linux. Глянь как тут пишут https://stackoverflow.com/questions/880557/socket-accept-too-many-open-files ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2022, 18:01 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
И даже не "особенности", а конфигурация защиты от дураков. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2022, 18:25 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
mayton Эта поведение не связано с С++. Особенности ОС linux. Глянь как тут пишут https://stackoverflow.com/questions/880557/socket-accept-too-many-open-files Да, я понимаю это с С напрямую не связано. Настройки в ОС поменял конечно-же сразу. Но интересует, на что эти самые файлы расходуются? Я подозреваю что на коннекты к БД . А на что-нибудь еще может расходоваться? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2022, 11:23 |
|
|
start [/forum/topic.php?fid=57&msg=40130980&tid=2017122]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
25ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 121ms |
0 / 0 |