Форум программистов, компьютерный форум CyberForum.ru

Как подсчитать длину динамического массива? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Запись в сектора на floppy-диске, и чтение с этих секторов http://www.cyberforum.ru/cpp-beginners/thread506114.html
Здраствуйте. Меня интерисует Функция на Си чтоби записывать данные (строку, или часть отдельного файла) в отдельный сектор на флопи диске, и чтение с этого сектора. Вобщем на флоп надо записать файл(например текстовый), в различные сектора, так чтоб система его не видела. но при помощи програмы его можно было прочитать. Програма на обычном Си. Подскажите пожалуйста Функции, для реализации...
C++ Нужно прочитать с BIOS'a текущий язык Господа! Есть MultiLanguage BIOS (English, French, Spain). Смотрю WMI репозиторий - InstallableLanguages - 3 Languages. Хорошо. Смотрю Current Language - "n|US|iso8859-1". Смотрю ListOfLanguages - "n|US|iso8859-1","n|US|iso8859-1","r|CA|iso8859-1". Т.е. два из трех одинаковы. Меняю английский на испанский - WMI показывает тот же самый язык "n|US|iso8859-1". Собственно проблема в том, что нужно... http://www.cyberforum.ru/cpp-beginners/thread506095.html
Как загрузить данные из файла? C++
Как создать двумерный массив, скажем A из данных файла,экспортированного из MathCAD? Файл имеет расширение .SDD, при создании экспорта описан как С-плюс
C++ Определить цвет пиксела в произвольной точке монитора
Доброе время суток. Подскажите, пожалуйста, как определить цвет пиксела в произвольной точке монитора?
C++ Подделка обратного адреса UDP-сообщения http://www.cyberforum.ru/cpp-beginners/thread505954.html
Имеем следующую проблему. Есть клиент-серверное приложение, в котором идёт обмен сообщениями по UDP протоколу. Понадобилось написать над этим делом TCP/IP-мост. То есть не у всех клиентов есть возможность связаться с сервером по UDP. Сами понимаете, «подбривка» UDP файрами, http-proxy и прочие прелести корпоративных интранетов. Посему, чтобы не курочить логику сетевого движка клинта и сервера...
C++ Определение класса в DLL - ипользование вне и динамически Однажды я уже задавал подобный ворос, ответа так и не получил. В свое время я обошелся без использования классов из DLL, но сейчас вновь возникла необходимость и обойтись не получится. Скажем в DLL есть такой код #include <windows.h> #ifdef DLL_EXPORTS #define DLL_API __declspec(dllexport) #else #define DLL_API __declspec(dllimport) #endif class DLL_API CMyDllObject{ public: подробнее

Показать сообщение отдельно
bazile
58 / 34 / 20
Регистрация: 15.03.2007
Сообщений: 6,911
22.10.2006, 18:41     Как подсчитать длину динамического массива?
В С++ нет понятия безразмерного массива или массива без ограничений. Запись int a[] = {0} указывает компилятору создать массив с длиной равной 1. Если бы ты написал int a[] = {0,1,2}, то длина массива равнялась бы трем.
Далее, так как нумерация элементов массивов начинается с нуля, то запись a[1]=5 в твоем примере приводит к тому, что ты записываешь данные за пределы массива в область памяти, которой ты не владеешь. Массив при этом не расширяется. Он и не обязан этого делать. Поэтому твой пример абсолютно неправильный.
Выражение sizeof(a)/sizeof(int) является константой и вычисляется на этапе компиляции. Чтобы убедиться в этом напиши вместо int a[] = {0}; строку int a[]; и посмотри что тебе скажет компилятор.
Вектор дает возможность иметь "массив без ограничений". Он выделяет новую память по мере необходимости скрывая детали реализации. Именно поэтому все и советуют им пользоваться.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru