|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
mayton Мне было просто интересно какое действие Касперский посчитал вредоносным. Открытие сетевого сокета наружу? Думаю да, там был забор данных с другого сервера. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2022, 12:40 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Уткътам был забор данных с другого сервера. Требующий остановки других приложений, ага... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2022, 13:44 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Уткътам был забор данных с другого сервера. Требующий остановки других приложений, ага... Поясните. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2022, 14:44 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
А, извиняюсь, невнимательно прочёл логи, не заметил, что первая запись относится к WER. Падение твоей программы не имеет ничего общего с аантивирусом. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2022, 14:49 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov А, извиняюсь, невнимательно прочёл логи, не заметил, что первая запись относится к WER. Падение твоей программы не имеет ничего общего с аантивирусом. эээ...... а к чему имеет? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2022, 14:52 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Уткъа к чему имеет? К багу в ней. Запускай под отладчиком, смотри call stack при падении. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2022, 15:18 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Уткъа к чему имеет? К багу в ней. Запускай под отладчиком, смотри call stack при падении. Сомневаюсь, т.к. в программе для теста оставил 3 строчки. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 12:50 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Коллеги, добрый день. Пытаюсь забить программу на несколько файлов. Надо объявить структуру чтобы она была доступна во всех частях программы (разные файлы) Было вот так: main.c Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
header.h Код: plaintext 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 12:53 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
выношу в header: header.h Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
в main остается: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
И нормально работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 12:59 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
но как только дописываю extern к определению структуры в header.h Код: plaintext 1. 2. 3. 4.
возникает ошибка: data_control.h:22:8: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘struct’ exterm struct pair { Подскажите пожалуйста как правильно определить структуру в заголовочном файле, и главном чтобы она была доступна из любого другого файла проекта? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 13:02 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Уткъ И нормально работает. Почему оно не должно работать? Оба варианта верны. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 13:02 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Dima T Уткъ И нормально работает. Почему оно не должно работать? Оба варианта верны. А с точки зрения доступность из других файлов, это нормальный вариант, без extern ? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 13:04 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Уткъ но как только дописываю extern к определению структуры в header.h Код: plaintext 1. 2. 3. 4.
возникает ошибка: data_control.h:22:8: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘struct’ exterm struct pair { Подскажите пожалуйста как правильно определить структуру в заголовочном файле, и главном чтобы она была доступна из любого другого файла проекта? extern убери, он у тебя лишний. extern обозначает что искать объявление в другом месте. PS Ты бы книжку какую почитал, это азы. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 13:04 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Dima T Уткъ но как только дописываю extern к определению структуры в header.h Код: plaintext 1. 2. 3. 4.
возникает ошибка: data_control.h:22:8: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘struct’ exterm struct pair { Подскажите пожалуйста как правильно определить структуру в заголовочном файле, и главном чтобы она была доступна из любого другого файла проекта? extern убери, он у тебя лишний. extern обозначает что искать объявление в другом месте. PS Ты бы книжку какую почитал, это азы. Я просто про переменные читал, что их надо extern делать. Ну читать еще и читать ))) Большое спасибо!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 13:06 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
В начале каждого .h файла ставь Код: plaintext 1.
это чтобы препроцессор дважды не включил твой .h И про препроцессор почитай ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 13:07 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Dima T В начале каждого .h файла ставь Код: plaintext 1.
это чтобы препроцессор дважды не включил твой .h И про препроцессор почитай включил. читаю :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 13:16 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
УткъСомневаюсь, т.к. в программе для теста оставил 3 строчки. Багу достаточно одной. Трёх - мало для осмысленного функционирования программы, работающей с БД. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 13:21 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Dima T, еще такой вопрос, тестирую сколько памяти может выделиться для структуры: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Если ставлю в 1000000 раз больше, то память не выделяется: Код: plaintext 1.
Но это же не обльше чем память на сервере, на сервере 8 Гб доступно, а они не выделяются. Я так понимаю это идет занятие памяти стека, а она маленькая. Подскажите пожалуйста как воспользоваться не памятью стека при выделении, а общей памятью на сервере? Ну или я что-то путаю ( ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 13:24 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Ты не указал какой битности у тебя код. Будем считать что x64, тогда sizeof(struct pair) = 16 байт, и всего Код: plaintext 1.
24 Гб свободной памяти у тебя просто нет, как минимум поэтому не дает выделить столько памяти. В 32-битных было просто, адресное пространство процесса позволяет выделить максимум 1.7 Гб, и они выделялись даже если памяти не хватало, остальное свопилось. В x64 адресное пространство не ограничивает, поэтому придуманы какие-то хитрые алгоритмы искусственного ограничения, т.к. одна кривая прога запросто может занять всю память и своп в придачу. Какие ограничения, как их обходить, я не вникал, в каждой ОС свои правила. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 13:37 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Вместо ip можно поставить беззнаковое целое число. Код: plaintext 1. 2. 3. 4.
Это сэкономит память. Есть формулы трансляции из строк типа "192.168.0.1" в целые числа и обратно. Но мне кажется что тебе не стоит сразу кушать слона. Поработай хотя-бы с 1000 штук таких пар. Отшлифуй просто корректную работу. А уже потом - растягивай до мильярдов. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 13:45 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
УткъНу или я что-то путаю ( Ты, как и в остатке топика, путаешь всё. Абсолютно всё. Вследствие хронического незнания азов функционирования компьютера. Даже если бы sizeof(pair) было 1 байт, то ты пытался бы выделить 1500000000 байт. Что, внезапно, полтора гигабайта. У тебя pair - 16 байт. Простая арифметика и вуаля - мы видим попытку выделить 24 гигабайта при доступных восьми. Но, как верно упомянул тёзка, тебе мог бы прийти на помощь своп. Если бы ты не пытался скомпилировать 32-х разрядное приложение, где sizeof(pair) - 8 байт. Что сокращает потуги до 12 гигабайт при максимально доступном адресном пространстве в четыре (практически не более двух, максимум трёх). Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 13:54 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Dima T Ты не указал какой битности у тебя код. Будем считать что x64, тогда sizeof(struct pair) = 16 байт, и всего Код: plaintext 1.
24 Гб свободной памяти у тебя просто нет, как минимум поэтому не дает выделить столько памяти. В 32-битных было просто, адресное пространство процесса позволяет выделить максимум 1.7 Гб, и они выделялись даже если памяти не хватало, остальное свопилось. В x64 адресное пространство не ограничивает, поэтому придуманы какие-то хитрые алгоритмы искусственного ограничения, т.к. одна кривая прога запросто может занять всю память и своп в придачу. Какие ограничения, как их обходить, я не вникал, в каждой ОС свои правила. Ого, я не думал что прям 24 гига.... просто я не успевал даже top запустить - мнгновенно ошибка была, думал несколько мегабайт пытается взять... Спасибо за разьяснение. Раз вся память доступна - это хорошо! ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 14:02 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov УткъНу или я что-то путаю ( Ты, как и в остатке топика, путаешь всё. Абсолютно всё. Вследствие хронического незнания азов функционирования компьютера. Даже если бы sizeof(pair) было 1 байт, то ты пытался бы выделить 1500000000 байт. Что, внезапно, полтора гигабайта. У тебя pair - 16 байт. Простая арифметика и вуаля - мы видим попытку выделить 24 гигабайта при доступных восьми. Но, как верно упомянул тёзка, тебе мог бы прийти на помощь своп. Если бы ты не пытался скомпилировать 32-х разрядное приложение, где sizeof(pair) - 8 байт. Что сокращает потуги до 12 гигабайт при максимально доступном адресном пространстве в четыре (практически не более двух, максимум трёх). я немного туповат просто ( прошу принять это и простить. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 14:03 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
mayton Вместо ip можно поставить беззнаковое целое число. Код: plaintext 1. 2. 3. 4.
Это сэкономит память. Есть формулы трансляции из строк типа "192.168.0.1" в целые числа и обратно. Но мне кажется что тебе не стоит сразу кушать слона. Поработай хотя-бы с 1000 штук таких пар. Отшлифуй просто корректную работу. А уже потом - растягивай до мильярдов. Да, сначала надо сделать все просто, потому уже оптимизировать, когда будет что оптимизировать ) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 14:03 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Как будет угодно. Вот потом почитай https://docs.microsoft.com/en-us/windows/win32/api/ws2tcpip/nf-ws2tcpip-inet_pton ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 14:10 |
|
|
start [/forum/topic.php?fid=57&msg=40134203&tid=2017122]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
1ms |
others: | 269ms |
total: | 418ms |
0 / 0 |