63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
1 | |
new vs malloc01.09.2020, 22:54. Показов 759. Ответов 12
Метки нет (Все метки)
С первой ссылки google взял вот это - In case of new, memory is allocated from free store where as in malloc() memory allocation is done from heap.
что значит free store?new может выделять память не в куче?
0
|
01.09.2020, 22:54 | |
Ответы с готовыми решениями:
12
В чем разница между malloc() и (char *)malloc() New и malloc new vs malloc new на malloc |
248 / 70 / 9
Регистрация: 22.07.2018
Сообщений: 321
|
|
01.09.2020, 23:00 | 2 |
А разгадка проста:
Сообщение от https://www.geeksforgeeks.org/malloc-vs-new/
2
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
|
01.09.2020, 23:05 | 3 |
Если вы о каких-либо гарантиях, то, конечно, стандарт С++ не говорит ничего о том, что выделение будет из heap'a.
0
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
01.09.2020, 23:13 [ТС] | 5 |
Azazel-San, vantfiles, окей, но что тогда это free store такое? Он как-то может выделить место на стеке? я никогда не встречал чтобы new выделал память под что-то на стеке, ведь если он так сделает то память очиститься при выходе из функции
Добавлено через 55 секунд может автор имел ввиду placement new который в готовом куске памяти может объекты помещать?
0
|
18829 / 9832 / 2403
Регистрация: 30.01.2014
Сообщений: 17,269
|
|
01.09.2020, 23:25 | 6 |
ReYalp,
new может быть перегружен под любое поведение.
0
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
01.09.2020, 23:30 [ТС] | 7 |
DrOffset, именно без перегрузки , на большинстве нормальных(популярных) компиляторов, new же выделяет место в куче , разве нет?Где же еще он может выделить место?
0
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
||||||
01.09.2020, 23:32 | 8 | |||||
Хз.
Если кто-то так захотел, то сможет.
0
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
01.09.2020, 23:34 [ТС] | 9 |
0
|
18829 / 9832 / 2403
Регистрация: 30.01.2014
Сообщений: 17,269
|
|
01.09.2020, 23:36 | 10 |
Где это указано в исходном вопросе?
Да. Где угодно. В исходном вопросе не указано про недопустимость перегрузок, да и стандартом не регламентируется где именно. Добавлено через 1 минуту Это неверно. alloca выделит память в пределах конструктора, затем по выходу из него память все, не доступна, но твой код рассчитывает, что доступна.
0
|
63 / 46 / 11
Регистрация: 27.12.2017
Сообщений: 1,484
|
|
01.09.2020, 23:37 [ТС] | 11 |
DrOffset,
буду в следующий раз указывать что речь идёт о стандартных new и malloc
0
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
|
01.09.2020, 23:37 | 12 |
0
|
18829 / 9832 / 2403
Регистрация: 30.01.2014
Сообщений: 17,269
|
||||||
01.09.2020, 23:39 | 13 | |||||
Azazel-San, можно так сделать:
Не надо ничего такого указывать. Вы не поняли посыл собственной цитаты. Любой new - стандартный. Именно в этом и подчеркивается отличие в цитате:
2
|
01.09.2020, 23:39 | |
01.09.2020, 23:39 | |
Помогаю со студенческими работами здесь
13
new, malloc, malloc в С++ malloc() malloc vs new malloc Malloc vs new Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |