Заблокирован
|
||||||
1 | ||||||
хитрая константа не даёт создать обычный массив25.11.2011, 18:47. Показов 7423. Ответов 64
Метки нет (Все метки)
Почему я не могу создать обычный массив, указав константу в качестве количества элементов?
0
|
25.11.2011, 18:47 | |
Ответы с готовыми решениями:
64
Даны функциональная константа, предикатная константа и определённое количество аксиом. Как построить модель Сервер 2008R2- даёт IP 192.168.0.(2-200), и даёт неправильные DNS сервера Модем (роутер) не даёт авторизоваться на некоторых сайтах, а также не даёт зарегистрировать антивирус Массив-константа |
114 / 114 / 13
Регистрация: 29.04.2010
Сообщений: 240
|
|
25.11.2011, 19:37 | 21 |
1
|
Заблокирован
|
|
25.11.2011, 19:41 | 22 |
Вопрос заключается не в том, как себя ведет тот или иной компилятор, а вопрос заключается в том, что говорит по этому поводу стандарт, то ли он это разрешает делать, то ли он это запрещает делать, то ли оставляет на усмотрение разработчиков компиляторов.
Добавлено через 3 минуты Лично я веду речь о С++.
1
|
go
|
25.11.2011, 19:45
#23
|
1
|
186 / 186 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
|
|
25.11.2011, 19:59 | 24 |
Почему размер массива должен быть известен на этапе компиляции? Ведь память выделяется под массив во время выполнения как и для new T[size].
И вообще зачем такое сделали?
0
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
25.11.2011, 20:05 | 26 |
1
|
186 / 186 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
|
|
25.11.2011, 20:18 | 27 |
Я не понял, что вы хотели этим сказать. Под new T[size] выделяется память во время выполнения, хотя выделяется память не в стэке, а в куче.
0
|
114 / 114 / 13
Регистрация: 29.04.2010
Сообщений: 240
|
||||||
25.11.2011, 20:21 | 28 | |||||
Chelioss, а как можно выделить память во время компиляции для массива, котоый задан следующим образом:
1
|
186 / 186 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
|
|
25.11.2011, 20:23 | 29 |
Еще раз. Память под массив выделяется во время выполнения программы или во время компиляции?
0
|
114 / 114 / 13
Регистрация: 29.04.2010
Сообщений: 240
|
|
25.11.2011, 20:25 | 30 |
Chelioss, Если массив объявлен как a[..], то во время компиляции. При этом размер тоже должен быть известен на этапе компиляции. Если же массив динамический, тогда память выделяется в рантайме с помощью new. Собственно поэтому он динамическим и называется.
1
|
114 / 114 / 13
Регистрация: 29.04.2010
Сообщений: 240
|
|
25.11.2011, 20:28 | 32 |
go, и? Не понимаю смысла сообщения.
1
|
186 / 186 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
|
|
25.11.2011, 20:31 | 33 |
Что значит вообще "выделяется память"?
При компиляции создается программа и она занимает место на диске. Массив будет содержатся в этом месте? Нет. А где? Выделяется память в той памяти, которая дает операционная система при запуске приложения? Но ведь это уже после компиляции, а не во время.
0
|
114 / 114 / 13
Регистрация: 29.04.2010
Сообщений: 240
|
|
25.11.2011, 20:37 | 34 |
Да, я неудачно выразился. Память не выделяется на этапе компиляции. Но на этапе компиляции уже известно, сколько памяти надо будет выделить.
Если же массив задан динамически, то компилятор о его размере ничего не знает. Добавлено через 1 минуту Одни массивы (те, размер которых известен на этапе компиляции) создаются в стеке, сразу при входе в функцию. Другие - - в куче, и они уже создаются тогда, когда до них дойдет выполнение программы.
1
|
186 / 186 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
|
|
25.11.2011, 20:38 | 35 |
А почему это нельзя сделать во время выполнения? Не компилятором, конечно, а самой программой?
0
|
114 / 114 / 13
Регистрация: 29.04.2010
Сообщений: 240
|
||||||
25.11.2011, 20:40 | 37 | |||||
Сыроежка, под "динамическим массивом" я понимаю конструкцию
1
|
114 / 114 / 13
Регистрация: 29.04.2010
Сообщений: 240
|
|
25.11.2011, 20:49 | 39 |
На сабж темы я уже ответил. Это полемика, вызванная вопросом
И прошу пожалуйста линк, где я говорил фразу "к вопросу никакого отношения не имеет".
1
|
Заблокирован
|
||||||
25.11.2011, 20:57 [ТС] | 40 | |||||
0
|
25.11.2011, 20:57 | |
25.11.2011, 20:57 | |
Помогаю со студенческими работами здесь
40
Почему ссылка с именем умной таблицы в ячейке не даёт ссылку на эту таблицу в формуле, а имя текстом даёт? Не даёт создать функцию с двумерным массивом Static массив не даёт выполнить запись как создать самый обычный сайт Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |