Шаблоны для организации контроля индексов в программах на языках C и С - Статья

бесплатно 0
4.5 130
Исследование вопроса реализации многомерных динамических массивов и средств контроля индексов при обращении к элементам этих массивов. Описание методики портирования унаследованных 16-разрядных программ в 32-разрядную среду, а также отладочных макросов.

Скачать работу Скачать уникальную работу

Чтобы скачать работу, Вы должны пройти проверку:


Аннотация к работе
ШАБЛОНЫ ДЛЯ ОРГАНИЗАЦИИ КОНТРОЛЯ ИНДЕКСОВ В ПРОГРАММАХ НА ЯЗЫКАХ C И С ШАБЛОНЫ ДЛЯ ОРГАНИЗАЦИИ КОНТРОЛЯ ИНДЕКСОВ В ПРОГРАММАХ НА ЯЗЫКАХ C И С Шаблоны многомерных динамических массивов реализуют технику автоматического выделения памяти и защиту от ошибок индексации без существенного снижения производительности. Шаблоны применяются для реализации вычислительных алгоритмов, переноса 16-разрядных программ в 32-разрядную среду и организации отладочного контроля индексов в программах на языках C и C.В качестве примеров применения динамических массивов будет описана методика портирования унаследованных 16-разрядных программ в 32-разрядную среду, а также макросы для организации отладочного контроля индексов в программах на языке С. Отсутствие автоматической проверки индекса означает, что программист должен гарантировать корректность индекса - в противном случае программа будет содержать скрытую ошибку, например, такую, как знаменитая ошибка переполнения буфера в программе sendmail. В отличие от обычного массива, размер которого фиксируется при сборке программы или при создании массива оператором динамического распределения памяти, размер динамического массива может меняться в процессе выполнения программы. Фактически, массив первоначально имеет нулевой размер, но при обращении к любому элементу размер массива автоматически увеличивается. {if (size > (~0u)-9) abort(); // Переполнение size if ((*p = realloc (*p, size))==NULL) abort(); // Ошибка размещения if (size > oldsize) memset // ОбнулениеТехнология динамических массивов с автоматическим распределением памяти освобождает программиста от необходимости распределять память вручную и обеспечивает защиту от ошибок индексации, при этом производительность динамических массивов сравнима с производительностью штатных массивов.

Вы можете ЗАГРУЗИТЬ и ПОВЫСИТЬ уникальность
своей работы


Новые загруженные работы

Дисциплины научных работ





Хотите, перезвоним вам?