ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
23 июля
1188980
teap0t (17.03.2022 13:00, просмотров: 3962)
Ещё один детский вопрос по Си. Писал тут себе костыль для работы и упёрся в проблему. Мне надо растащить текстовый файл на много маленьких, добавив в некоторые комментарии, формируемые по определённым правилам. Иначе говоря, надо работать со строками. Я использовал стандартную библиотеку <string.h> (компилятор MSVC 6.0). Проблема выглядит так: код периодически затирает счётчик циклов. Т.е. при некоторой ситуации при работе со строкой я выхожу за её границы и 

затираю

соседнюю память. Поятно, ничего, кроме стандартных библиотек я не пользую. Сопутствующая неприятность. Попытался сгенерить *.map, так эда дрянь рассказала мне сколько всего она надёргала из kernel32, но не указала мне ни одной моей переменной. Это нормально или я какой ключ пропустил?


Собственно вопрос. Полагаю, что если засуну все свои счётчики и указатели в структуру, да ещё заведу в начале и конце этой структуры по защитному полю, то избавлюсь от указанного затирания памяти (речь о нескольких байтах буквально). Но меня смущает откровенная ассемблерность подхода к решению. Допустимо ли в ламповом Си решать проблемы таким образом или я должен писать собственный код работы с текстом?


Не знаю, сумел ли передать свою оторопь необычностью проблем, но надеюсь на вашу тактичность в формулировках.

Это я, здравствуйте. http://the-epic-file.com/bookshelf.htm