5 / 5 / 1
Регистрация: 10.03.2012
Сообщений: 121
|
|||||||||||
1 | |||||||||||
Как malloc выделяет память?07.06.2014, 19:43. Показов 5245. Ответов 22
Метки нет (Все метки)
Почему, если я выделяю память для одного int, вот так
0
|
07.06.2014, 19:43 | |
Ответы с готовыми решениями:
22
Почему GlobalAlloc выделяет память в файле подкачки? И как "обрезать" ненужную память? Realloc выделяет память для массива int и не выделяет память для массива double Действительно ли new выделяет память в куче (heap)? malloc и new (динамическая память) |
5 / 5 / 1
Регистрация: 10.03.2012
Сообщений: 121
|
|
07.06.2014, 21:01 [ТС] | 3 |
0
|
Землянин
34 / 34 / 16
Регистрация: 15.01.2013
Сообщений: 312
|
|
07.06.2014, 21:11 | 4 |
PlayaRC, под свою программу Вы выделили именно 4 байта, остальное это не размеченная область памяти, в ней хранится мусор и Вы можете её использовать, но не факт, что все будет гладко, можно набрести на область памяти другого процесса или типа того.
1
|
26 / 26 / 15
Регистрация: 03.05.2013
Сообщений: 71
|
|
07.06.2014, 21:15 | 6 |
так тебе ведь сказали, что тебе просто не повезло. вместилось 8 int'ов по стечению обстоятельств. могло вместится больше, а могло меньше. ты начал писать в чужую память начиная со второго элемента.
1
|
5 / 5 / 1
Регистрация: 10.03.2012
Сообщений: 121
|
|
07.06.2014, 21:17 [ТС] | 7 |
Добавлено через 2 минуты тогда в чем отличия экзепшенов "Перполнения буфера" и "Куча повреждена"? Если и там, и там можно забрести в память выделенную другому процессу и записать туда что-то свое
0
|
5 / 5 / 1
Регистрация: 10.03.2012
Сообщений: 121
|
|
07.06.2014, 21:43 [ТС] | 9 |
подробнее, пожалуйста, не могу понять разницу! заранее спасибо
0
|
Каратель
|
|||||||||||
07.06.2014, 21:51 | 10 | ||||||||||
что подробнее если тут все логично
Не по теме: strcat взят для иллюстрации и он вовсе не обязательно бросит такой исключение так как ничего не знает о размере буферов
1
|
Модератор
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,523
|
||||||
07.06.2014, 22:07 | 11 | |||||
вопрос какой компилятор?
и какой режим компилирования? отладочная или релизная? например в отладочном(Debig) режиме VC при выделении памяти создает "подушку безопасности" выделяет память не только под int но и до и после этой памяти соответственно когда выходиш за границы массива ты не пишешь в чужую память, а пишешь в "подушку" программа не рухает но при закрытии программы, анализируется целостность подушки и выдает предупреждение " выход за границы" посмотреть эту подушку можно например так
Добавлено через 1 минуту память для процессов не пересекаемая
2
|
5 / 5 / 1
Регистрация: 10.03.2012
Сообщений: 121
|
|
07.06.2014, 22:30 [ТС] | 12 |
Добавлено через 1 минуту так вот почему у меня не получалось переполнить буфер, нужно релиз выбрать
0
|
2782 / 1935 / 570
Регистрация: 05.06.2014
Сообщений: 5,600
|
|
07.06.2014, 23:46 | 14 |
0
|
327 / 230 / 55
Регистрация: 30.05.2014
Сообщений: 682
|
|
08.06.2014, 08:24 | 16 |
Чем отличается программист от обычного человека:
Обычный человек считает, что килобайт это тысяча байт, а программист что в килограмме 1024 грамма. Страницами оперирует не malloc а менеджер памяти. http://wm-help.net/books-onlin... 464-6.html
0
|
327 / 230 / 55
Регистрация: 30.05.2014
Сообщений: 682
|
|
08.06.2014, 08:46 | 18 |
0
|
Модератор
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,523
|
|
08.06.2014, 08:58 | 19 |
А зачем ты мне это рассказываешь?
расскажи это Renji, который на вопрос
Сообщение от PlayaRC
но могу переписать значит 4 КБ это это тысяча двадцать четыре int так устроит хотя опять засада получается никто не гарантировал,что int 4 байта
0
|
2782 / 1935 / 570
Регистрация: 05.06.2014
Сообщений: 5,600
|
|
08.06.2014, 11:44 | 20 |
0
|
08.06.2014, 11:44 | |
08.06.2014, 11:44 | |
Помогаю со студенческими работами здесь
20
Организовать функцию, которая выделяет память под строку Написать программу, которая вводит целое число n и выделяет память И снова динамическая память, malloc и free в конструкторе и деструкторе Программа, которая считывает количество товаров и выделяет память для сохранения их цен Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |