|
Аллокация в конструктора массива
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov indigodye0Ну короче в конструкоре никак. Да, для неспособных прочесть документацию - никак. Увы. Ну ты же способен прочесть документацию и для тебе тоже похоже никак ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2021, 18:36 |
|
Аллокация в конструктора массива
|
|||
---|---|---|---|
#18+
У меня нет задачи где такое необходимо. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2021, 18:38 |
|
Аллокация в конструктора массива
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov У меня нет задачи где такое необходимо. Да Брось ты Ты просто не знаешь ответа на мой вопрос ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2021, 18:39 |
|
Аллокация в конструктора массива
|
|||
---|---|---|---|
#18+
indigodye0 Нет uint64_t array[]; Будет жить и после завершения конструктора ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2021, 19:02 |
|
Аллокация в конструктора массива
|
|||
---|---|---|---|
#18+
Barlone indigodye0 Нет uint64_t array[]; Будет жить и после завершения конструктора http://cpp.sh/8by5js ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2021, 19:35 |
|
Аллокация в конструктора массива
|
|||
---|---|---|---|
#18+
indigodye0 Вопрос позвольяет ли так сделать С++ ? Можно. Но пользоваться это памятью ты сможешь лишь в самом конструкторе... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2021, 20:44 |
|
Аллокация в конструктора массива
|
|||
---|---|---|---|
#18+
indigodye0Ты просто не знаешь ответа на мой вопрос Ну... Использовать шаблоны ты не хочешь. Использовать calloc ты не хочешь. Использовать простой массив массив ты не хочешь. Извини, но на твой вопрос ответов больше нет. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2021, 21:23 |
|
Аллокация в конструктора массива
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Использовать calloc ты не хочешь. Ты так и не раскрыл как ты это себе представляешь ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2021, 21:25 |
|
Аллокация в конструктора массива
|
|||
---|---|---|---|
#18+
https://en.cppreference.com/w/c/memory/calloc Calloc выделяет память в куче и вовращает указатель У нас же вообще то на стеке все ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2021, 21:26 |
|
Аллокация в конструктора массива
|
|||
---|---|---|---|
#18+
indigodye0Ты так и не раскрыл как ты это себе представляешь А, да. Во-первых, я перепутал calloc и alloca. Во-вторых, не учёл, что оно освободится при завершении текущей процедуры, то есть конструктора. Значит у тебя остаются всего две возможности: шаблоны и простой массив переменной длины. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2021, 22:17 |
|
Аллокация в конструктора массива
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Значит у тебя остаются всего две возможности: шаблоны и простой массив переменной длины. Все пропало ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2021, 22:20 |
|
Аллокация в конструктора массива
|
|||
---|---|---|---|
#18+
indigodye0 Dimitry Sibiryakov Значит у тебя остаются всего две возможности: шаблоны и простой массив переменной длины. Все пропало Ты, наверное, знаешь какой-то хитрый трюк, но проверяешь, не знает ли его кто-то ещё? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2021, 22:23 |
|
Аллокация в конструктора массива
|
|||
---|---|---|---|
#18+
ъъъъъ indigodye0 пропущено... Все пропало Ты, наверное, знаешь какой-то хитрый трюк, но проверяешь, не знает ли его кто-то ещё? Нет, просто я был тут недавно на интервью и меня там будущий тим лид спрашивал - как такое сделать Я сказал что так нельзя Он уверенно гнал что можно ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2021, 22:25 |
|
Аллокация в конструктора массива
|
|||
---|---|---|---|
#18+
indigodye0 ъъъъъ пропущено... Ты, наверное, знаешь какой-то хитрый трюк, но проверяешь, не знает ли его кто-то ещё? Нет, просто я был тут недавно на интервью и меня там будущий тим лид спрашивал - как такое сделать Я сказал что так нельзя Он уверенно гнал что можно Можно, но, как уже обсудили, локально, лишь в пределах функции. ... А ты не выпытал из него, что он имел в виду? А то может, что-то типа "объект на стеке, а в объекте ссылка на блок в куче". ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2021, 23:05 |
|
Аллокация в конструктора массива
|
|||
---|---|---|---|
#18+
ъъъъъ indigodye0 пропущено... Нет, просто я был тут недавно на интервью и меня там будущий тим лид спрашивал - как такое сделать Я сказал что так нельзя Он уверенно гнал что можно Можно, но, как уже обсудили, локально, лишь в пределах функции. ... А ты не выпытал из него, что он имел в виду? А то может, что-то типа "объект на стеке, а в объекте ссылка на блок в куче". Ну не надо думать что я такой идиот и не в курсе про шаблоны alloca и другие "умные" советы Вопрос звучал равно как я его сюда привел ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2021, 23:07 |
|
Аллокация в конструктора массива
|
|||
---|---|---|---|
#18+
indigodye0 Как мне в конструкторе выделить память в размере capacity для массива array ? (Массив нужен именно на стеке) Можно в декларации поля сразу хапнуть много () памяти на стеке, а потом, "динамически", делать её логически доступной, в размере не большем, чем было хапнуто. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.10.2021, 23:13 |
|
Аллокация в конструктора массива
|
|||
---|---|---|---|
#18+
indigodye0 Barlone пропущено... В стандарте так нельзя. Даже если ваш компилятор такое позволяет в качестве расширения, вы должны каким-то образом сначала выделить память, а потом вызвать конструктор для инициализации с помощью placement new http://cpp.sh/8by5js ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2021, 09:17 |
|
Аллокация в конструктора массива
|
|||
---|---|---|---|
#18+
indigodye0, ответ на твой вопрос дюже прост - компилятор должен знать размер типа на этапе компиляции, а массив переменной длины, длина которого задаётся из конструктора в рантайме, этого сделать не позволяет. Тебе остаётся лишь хранить указатель на массив в куче и его размер, управляя выделением памяти из кучи под массив в конструкторе/деструкторе. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2021, 11:58 |
|
Аллокация в конструктора массива
|
|||
---|---|---|---|
#18+
indigodye0 https://en.cppreference.com/w/c/memory/calloc Calloc выделяет память в куче и вовращает указатель У нас же вообще то на стеке все ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2021, 12:06 |
|
Аллокация в конструктора массива
|
|||
---|---|---|---|
#18+
indigodye0 Здравствуйте - вопрос такой Есть класс Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
Как мне в конструкторе выделить память в размере capacity для массива array ? (Массив нужен именно на стеке) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2021, 12:35 |
|
Аллокация в конструктора массива
|
|||
---|---|---|---|
#18+
ну я Код: plaintext 1. 2. 3.
Формально это UB даже если к-тор заинлайнится, потому что при выходе из к-тора память выделенная через alloca "освободится", а значит компилятор может туда положить что угодно затирая данные. То что в каких-то частных случая этого не происходит, делает все это еще сложнее для отладки. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2021, 13:23 |
|
Аллокация в конструктора массива
|
|||
---|---|---|---|
#18+
Anatoly Moskovsky при выходе из к-тора память выделенная через alloca "освободится" Место на стеке освободится если бы alloca стоял внутри {}. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2021, 14:42 |
|
Аллокация в конструктора массива
|
|||
---|---|---|---|
#18+
ну я Anatoly Moskovsky при выходе из к-тора память выделенная через alloca "освободится" Место на стеке освободится если бы alloca стоял внутри {}. Да, действительно, неправ я, проверка: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Объект p2 затирает данные объекта p. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2021, 14:50 |
|
Аллокация в конструктора массива
|
|||
---|---|---|---|
#18+
ну я, разве в стандарте C/C++ есть функции alloca/std::alloca ? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2021, 16:21 |
|
|
start [/forum/topic.php?fid=57&msg=40106395&tid=2017160]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
55ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 159ms |
0 / 0 |