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

Представление памяти, указатели - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Из заданной строки исключить символы равосположенные между скобками [ ] http://www.cyberforum.ru/cpp-beginners/thread1096890.html
Дана строка символов. Исключить из этой строки группы символов, расположенные между скобками . Сами скобки тоже должны быть исключены. Предполагается, что внутри каждой пары скобок нет других скобок. Знаю,есть куча подобных тем,и я облазил их все,однако, так и не смог найти то,что мне надо. Хотелось бы разобраться со своим кодом. Пожалуйста,подскажите в чем ошибка,выводит вообще какие левые...
C++ Не выводится номер минимального элемента массива Добрый вечер. Наверно лёгкая проблема, но у меня не получается её решить. Последовательно задана формулой ai=i2+0,4 Программа должен вывести значение максимального и минимального элемента, а также их порядковый номер. Но возникает две ошибки: http://4put.ru/pictures/max/854/2625659.jpg 1) максимальный элемент должен быть равен 625,4, а не ровно 625. 2) совсем беда с номером минимального... http://www.cyberforum.ru/cpp-beginners/thread1096884.html
Удалить с m по n символов, перезаписать строку и показать ее на экран C++
Удалить с m по n символов, перезаписать строку и показать ее на экран. К примеру массив на 10 символов, я удаляю с 4 по 6, а то что осталось вывожу как новую строчку. Как это можно решить?
Сравнение объектов C++
if ((a/b) > (f.a/f.b)) { cout << "1 > 2" << endl; return *this; объекты класса a и b имеют тип int, как в этом отрывке метода разультат сравнения преобразовать во флоат? конструкция типа float(...) не помогает...
C++ Ошибка в задаче http://www.cyberforum.ru/cpp-beginners/thread1096867.html
Заданы моменты начала и конца некоторого промежудка времени в часах минутах и секундах ( в пределах одних суток) Найти продолжительность этого промежудка в тех же единицах измерения. #include <iostream> using namespace std; int main(int argc, char*argv){ setlocale(LC_ALL, "Russian"); int min, sec, hours, min_1, sec_1, hours_1, m, s, h;
C++ Требуется написать игру "Лагерь". Число палаток должно равняться числу деревьев Нуждаюсь в вашей помощи. Лагерь ("Tents", "Tents and Trees") представляет собой прямоугольную сетку, некоторые клетки которой содержат "деревья". Необходимо разместить рядом с деревьями "палатки", соблюдая следующие правила: • Число палаток равняется числу деревьев. • Каждая палатка располагается рядом со "своим" деревом по горизонтали или вертикали, но не по диагонали. Если это условие... подробнее

Показать сообщение отдельно
DrOffset
6851 / 4062 / 927
Регистрация: 30.01.2014
Сообщений: 6,859
15.02.2014, 00:29     Представление памяти, указатели
Цитата Сообщение от Arkaniy Посмотреть сообщение
KOPOJI, да, размер. Но тогда ведь она выделится в другом месте, так сказать.
А именно расширить можно?

Добавлено через 2 минуты
Нашел то, что искал. Как я понял, так сделать нельзя. Спасибо за ответы.
На самом деле возможность такого действия ограничивается реализацией менеджера памяти. Т.к. менеджер памяти пытается выделить непрерывный блок заданного размера, то невозможность именно расширить (в общем случае) обуславливается тем, что нужно найти и выделить непрерывный блок бОльшего размера. Т.к. такой блок совсем не обязательно удастся расположить в том же месте где он был до этого, то придется искать новое место. Но, если почитать документацию к функции realloc:
The function may move the memory block to a new location (whose address is returned by the function).
То есть это как раз то, о чем я говорил. Реализация менеджера памяти может быть оптимизирована под случаи, когда память таки возможно выделить с увеличением в том же месте (уточню. must вместо may указывала бы на невозможность этого). На это безусловно нельзя полагаться в общем случае. Однако, если реализовывать свой менеджер памяти в рамках конкретной задачи можно добиться гарантии такого поведения.

Добавлено через 3 минуты
PS.
Конкретно для new и delete не существует увеличивающих размер версий. Зато есть семейство функций malloc.
 
Текущее время: 14:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru