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

new выделяет больше памяти, чем задано - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Символы.Вывести на экран сивол после символа а http://www.cyberforum.ru/cpp-beginners/thread835276.html
В тексте есть буква а, и она не последняя. Вывести на экран букву, следующую за ней.
C++ Access violating writing location 0x00000016 Добрый вечер! У меня код написано на С++. Когда я делая debugging мне выдает такую ошибку Как с этим справить? Спасибо http://www.cyberforum.ru/cpp-beginners/thread835267.html
C++ БСА к коду
Помогите составить БСА вот к этому коду #include "stdafx.h" #include "conio.h" void sum (int *res, char*a, char*b, int len1, int len2) { int i; for(i=0; i<len1-1; i++) {
C++ Создать структуру(номер по порядку,фамилия, адрес, № жека) вывести фамилии жильцов, дома которых относятся к пятому ЖЭКу
Здравствуйте,уважаемые форумчане!Помогите пожалуйста с написанием программ-а то завтра сдать уже надо... Препод ставит такие требования: а)писать на С++; б)использовать в программе не ссылки,а указатели; в)использовать подпрограммы. Работаю в Dev C++ Заранее ОГРОМНЕЙШЕЕ СПАСИБО! 5.Структуры Создать структуру,в которой имеется:
C++ Дан текст.Найти количество слов,где две гласные буквы и вывести их на экран. http://www.cyberforum.ru/cpp-beginners/thread835256.html
Здравствуйте,уважаемые форумчане!Помогите пожалуйста с написанием программ-а то завтра сдать уже надо... Препод ставит такие требования: а)писать на С++; б)использовать в программе не ссылки,а указатели; в)использовать подпрограммы. Работаю в Dev C++ Заранее ОГРОМНЕЙШЕЕ СПАСИБО! 4.Строки Дано текст.Найти количество слов,где две гласные буквы и вывести их на экран.
C++ Преобразовать строку, вырезав каждый символ "*" и повторив каждый символ, отличный символ "*" Здравствуйте,уважаемые форумчане!Помогите пожалуйста с написанием программ-а то завтра сдать уже надо... Препод ставит такие требования: а)писать на С++; б)использовать в программе не ссылки,а указатели; в)использовать подпрограммы. Работаю в Dev C++ Заранее ОГРОМНЕЙШЕЕ СПАСИБО! 3.Строки Дано строку символов.Переделать строку,вырезав каждый символ "*" и повторив каждый символ,отличный... подробнее

Показать сообщение отдельно
ValeryS
Модератор
6414 / 4880 / 448
Регистрация: 14.02.2011
Сообщений: 16,182
11.04.2013, 23:27     new выделяет больше памяти, чем задано
Цитата Сообщение от Игорь с++ Посмотреть сообщение
При всём моём уважении позвольте возразить , я вам верю , но я верю и своим глазам , а именно - я несколько раз запускал программу результат один и
А ты думаешь мусор каждый раз разный?
В отладочной версии происходит иницализация памяти служебными значениями
плюс new действительно в отладочной версии выделяет больше памяти
5 байт твоих и защитный блок (это сделано для того чтобы программа не рухнула когда ты выйдешь за пределы)
размер блока тайна известная компилятору
попробуй что нибудь записать по адресу p[5];
и увидишь больше тебе выделили памяти или нет
но все меняется когда приходит релиз
защитных блоков нет, оптимизация, память никто не чистит и твой размер будет меняться в зависимости от погоды на Марсе

Добавлено через 4 минуты
кстати new действительно может выделить больше памяти
выравнивать будет до кратному четырем
а может не будет
закладываться на это нельзя

Добавлено через 3 минуты
хочешь увидеть защитные блоки сделай так
C++
1
2
3
char t=new char[5];
for (int i=-20; i>30;i++)
 printf("%x ",p[i]);
 
Текущее время: 16:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru