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

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

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

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

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

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

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

8 ответов

10 просмотров

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

Виктор-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 объявления одинаковых было?

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

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

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
62
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Привет всем. Подскажите где можно посмотреть, какая версия электрон, поддерживает версии windows? Некий changelog. Мне бы желательно, поддержку 7,8,10... latest, как понимаю и...
Anonym Squad
21
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
а где есть mysql cloud кроме яндекс-клауд?
Oleg Nosov
13
Есть ли смысл устраиваться на 1с ? Даст это плюс в дальнейшем трудоустройстве на php? Просто у меня в городе вакансий на пхп нету. Или лучше удаленно искать. Опыта работы нету...
Azamat
13
hi im a cs student. i need some advice from people who have enough experience in Embedded Software. I need to know whether this profession is suitable for me. I have watched s...
Sahand 🏔️
8
use16 org 0x7c00 mov bx, msg call print jmp $ print: pusha start: mov ah, 0x0e mov al, [bx] cmp al, 0 je end ...
sans
4
Кстати а покупал кто-нибудь ЭЦП для подписи кода? А то у меня на некоторых компах и ОС иногда SmartScreen винды программу за вирус принимал. Если купить такую ЭЦП и подписыват...
Дмитрий Завгородний
15
А кто-нибудь запихивал сборку перловых модулей/образов с perl приложениями в окружения без интернета (в специализированном CI/CD)? У меня сейчас есть ряд cpanfile, которые н...
Andrey Smirnov / 𝓪𝓵𝓵𝓽𝓮𝓻 /
14
Карта сайта