Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Ввод строки в динамический массив Здравствуйте! Помоги пожалуйста разобраться со следующим: Как с клавиатуры ввести строковый литерал в символьный массив, расположенный в динамической памяти без фиксированного размера? char * ptr = new char; cin >> ptr; //или char * ptr = (char*) calloc(1,1); cin >> ptr; Использование "cin" - обрубает вносимый литерал на пробеле; https://www.cyberforum.ru/ cpp-beginners/ thread939088.html Компиляция нескольких файлов C++
Создал проект на wxDevC++ таким образом: потом создал три файла в проекте: coordin.h #ifndef COORDIN_H_ #define COORDIN_H_ struct haha {
C++ .h и .cpp файлы Если я объявляю в одном .h файле 3 класса, то могу ли я сделать полное определение методов для 3 классов в одном .cpp файле? https://www.cyberforum.ru/ cpp-beginners/ thread939078.html C++ Символ новой строки https://www.cyberforum.ru/ cpp-beginners/ thread939041.html
Всем привет) С маппировал текстовый файл в память. HANDLE file = CreateFile(fileNameWChar, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); DWORD fileSize = GetFileSize(file, NULL); HANDLE fileMap = CreateFileMapping(file, NULL, PAGE_READWRITE, 0, 0, NULL); char *pvFileSrc = (char *)MapViewOfFile(fileMap, FILE_MAP_WRITE, 0, 0, fileSize); если в...
Поменять слова в сообщении по принципу: первое со вторым, третье с четвертым и т.д C++
Помогите, пожалуйста решить задачку с использованием класса string. Я только учусь, и меня пока плохо получается.. Поменять слова в сообщении по принципу: первое со вторым, третье с четвертым и т.д. Вот мои наработки.. Но программа зациклилась и всё убила, пришлось перезапускать компьютер. #include <iostream> #include <cstdlib> #include <conio.h> #include <string> using namespace std;
C++ Необработанное исключение. Нарушение прав доступа при чтении Ребят помогите. В общем есть программа, открывает один файл, ищет в нем последовательности, заменяет на другие. В консоли все прекрасно работает и сохраняет. Сделал интерфейсную программу, с двумя кнопкам "Открыть файл" и "Сохранить файл". В буфер все записывается. Исрользуется динамический массив. Файловые потоки в конце закрываю. Массив удаляю. Действие такое, нажал "Открыть файл"... https://www.cyberforum.ru/ cpp-beginners/ thread939018.html
C++ векторы пары строки Здрассте! прокоментируйте вторую строку пожалуйса, я первой разобрался std::vector<std::pair<std::string, std::string>> BuildEdgeGraph( const std::vector<std::pair<std::string, std::string>> & graph ); Добавлено через 59 секунд а лучше всё вместе https://www.cyberforum.ru/ cpp-beginners/ thread939008.html Модификация объектов класса string C++
ООП С++ Лафоре есть пример: // sstrchng.cpp // изменение частей строки #include <iostream> #include <string> using namespace std; ///////////////////////////////////////////////////////////
C++ задача на полином Заданы степени и коэффициенты двух полиномов. Выполните следующие действия: выведите полиномы на печать; найдите разность двух полиномов и выведите результат на печать. https://www.cyberforum.ru/ cpp-beginners/ thread938996.html C++ Не могу сложить 2 числа https://www.cyberforum.ru/ cpp-beginners/ thread938977.html
#include "stdafx.h" #include <stdio.h> #include <conio.h> #include <clocale> int main() { setlocale(LC_ALL, "Russian"); float a, b, c;
Вычислить значение функции C++
Вычислить значение функции y=k! /x^k вот написал программу, но она работает не во всех случаях, посмотрите, пожалуйста, и укажите на ошибки, очень нужно! Спасибо! #include <stdio.h> #include <conio.h> void main() { float y,x,k,m;
C++ Степени и коэффициенты двух полиномов https://www.cyberforum.ru/ cpp-beginners/ thread938929.html
Заданы степени и коэффициенты двух полиномов. Выполните следующие действия: 1) выведите полиномы на печать; найдите разность двух полиномов и выведите результат на печать. 2) выведите полиномы на печать;умножьте полинома на число и выведите результат на печать. 3) выведите полиномы на печать;выполите дифференцирование полинома (получение нового объекта-многочлена – производной ...
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
16.08.2013, 21:58 0

Как узнать размер массива в динамической памяти? - C++ - Ответ 4956590

16.08.2013, 21:58. Показов 11287. Ответов 7
Метки (Все метки)

Ответ

Для всеобщего понимания объясню что хотели сказать во 2-м и 4-м посте.
Дело в том, что размер памяти, выделяемой функциями malloc, calloc, оператором new в C++ и прочими аллокаторами должен где-то храниться. Разумеется в самой выделенной памяти он храниться не может, т.к. запросто затрется другими данными. После блока выделенной памяти он храниться тоже не может, т.к. функция free и оператор delete в C++ просто не смогут его найти, т.к. для того чтобы его найти надо будет знать его размер.
Отсюда следует вывод: самый простой и очевидный способ хранения размера выделенного блока памяти следует хранить перед самим блоком памяти, например: мы выделяем блок памяти размером 10 байт, получаем указатель на выделенную область памяти: 0xaabbccdd, тем самым размер этой области (например 4 байта - 2 в 32-й степени) записывается в адрес 0xaabbccd9, т.е. функция/оператор освобождения памяти уже знает какой именно размер памяти пометить свободным.
Надеюсь кому-то помог мой ликбез.
Стоит обратить внимание, что все это зависит от реализации компилятора. Каждый может вести себя "немного" по-своему...

Добавлено через 59 секунд
Ах да, мораль сей басни такова: узнать безопасно - никак.

Вернуться к обсуждению:
Как узнать размер массива в динамической памяти? C++
4
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.08.2013, 21:58
Готовые ответы и решения:

Как можно узнать размер выделенной динамической памяти, на которую ссылается указатель a?
Скажем я в какой-то момент выделяю память под массив: int *a = new int ; затем память может...

Как можно узнать размер динамической страницы
Здравствуйте, уважаемые форумчане. Погуглив не нашел ничего стоящего. Подскажите код php как можно...

Как узнать размер оперативной памяти?
Привет, меня интересует,- как определить размер озу без О.С и если на ней ни чего не написано? Я...

Как узнать размер проги в памяти ?
Уважаемые эксперты ! Подскажите пожалуйста: как можно узнать начальный и конечный адрес любой...

7
16.08.2013, 21:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.08.2013, 21:58
Помогаю со студенческими работами здесь

Как узнать размер памяти программы (в параграфах)?
Вообщем, нужно определить при помощи функции 4Ah, размер памяти программы в параграфах. Вот...

Как узнать размер используемой памяти процесса?
Собственно, сабж. Возвращаемый размер должен совпадать с тем, что показывает диспетчер задач....

Как узнать размер страницы при страничной адресации памяти?
4 Кбайт или 4 Мбайт? В свойствах системы не могу найти; в XP просто искалось вроде. Спасибо, кто...

Узнать количество динамической памяти
Здравствуйте. Препод задал задание на работу с динамической памятью. Саму работу сделал, но теперь...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru