170 похожих чатов

Есть 2 cpp-библиотеки реализующие деревья. В одной есть double LeafValues[6400] значения

которого заданы вручную в коде.
В другом есть double LeafValues[128064], значения которого также заданы вручную в коде.

Принципиальной разницы в коде нет. Структура одинаковая, за исключением числовых параметров.
Оба файла включаются при компиляции в dll.

И, я не понимаю почему, но если происходит вызов функции из второго (большого) cpp-файла, то программа крашится.
А если из первого (который меньше), то всё норм.
Повторюсь, разницы в структуре между ними никакой. Кроме того что второй вручную задаёт 128064 значений.

dll компилится в vs2015 несколько минут.
А при тестовой попытке собрать exe с этим файлом уже час жду пока соберётся.

Из-за чего такое может происходить и как это можно исправить?

8 ответов

24 просмотра

А как именно они заданы?

Виктор-Nekrasov Автор вопроса
Dmitriy [Отпуск]
А как именно они заданы?

static const struct myStruct { double LeafValues[128064] = { 0.01126874214607591, 0, 0.01126874214607591,...............} } Вместо многоточия - много-много double-чисел

Виктор-Nekrasov Автор вопроса

Утверждать можно, т.к. вручную пробовал разные версии, и нашёл конкретно что именно при вызове этой функции происходит краш. Если закомментить её вызов - не происходит краша. Если вызвать аналогичную функцию, но из файла с меньшим размером массива - краша не происходит. Отладчик ничего не говорит, т.к. это dll, и присоединяться к исполнимой программе невозможно - ибо она в проде и данные потоком идут.

А это не нарушение ODR у тебя часом?

Ilya Zviagin
А это не нарушение ODR у тебя часом?

Нет, там msvc правда ломается на таком массивчике

Виктор-Nekrasov Автор вопроса
Ilya Zviagin
А это не нарушение ODR у тебя часом?

мне кажется компилятор не собрал бы, если бы 2 объявления одинаковых было?

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта