ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
3 июля
975450 Топик полностью
fk0, легенда (01.02.2020 10:17, просмотров: 304) ответил NAUT на хочу у себя повторить, можно исходник чтоб воспроизвести?
Автор исходники целиком так и не предоставил (какие ваши доказательтва?) В другом треде были какие-то обрывки, но без критичных отдельных функций. Я допускаю, что наиболее вероятный источник проблемы: 1) код является UB (undefined behaviour) с точки зрения компилятора (вроде того же "++" или эффектов связанных с restrict). Но поскольку автор ничего знать кроме F5 не хочет, статическими анализаторами не пользуется, и даже наверное варнинги не включает, и само собой исходники -- коммерческий секрет такого уровня что Microsoft и рядом не стоял, то вряд ли мы что узнаем. И предположение 2) проблемы настройки и конфигурации тулчейна, Libc и т.п. (т.е. баг в других системах не воспроизводим), например не выровненный стек, недостаток пространства на стеке и т.п. Про restrict см. ссылку: https://en.cpprefe …nce.com/w/c/io/fprintf и https://ru.wikipedia.org/wiki/Restrict Обращаю внимание, что в C99 декларация sprintf имеет вид:
int sprintf(char *restrict buffer, const char *restrict format, ...);
Что наталкивает на мысль что варианты когда buffer пересекается со строкой формата (у автора нет этой проблемы) или с аргументами (возможно что есть) -- не допустимы.
[ZX]