
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
24.04.2004, 23:32
|
|||
|---|---|---|---|
|
|||
Выделение памяти под многомерный массив с помощью new |
|||
|
#18+
Пусть переменная t объявлена как Код: plaintext Вроде бы, это - объявление указателя на указатель на массив. Теперь я хочу выделить память под внешний указатель как на массив размера n. Это можно было бы сделать так: Код: plaintext , но все-таки хочется через new, а не malloc. И вот записать выражение для new, чтобы не использовать приведение типов (т.е, чтобы new сам вернул int (**)[24]) я не могу :( Подскажите, как это сделать? P.S. Я уже нашел решение с использованием typedef: Код: plaintext 1. 2. 3. , теперь мне просто интересно, позволяет ли в принципе грамматика C++ сделать такую вещь напрямую? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.04.2004, 00:18
|
|||
|---|---|---|---|
|
|||
Выделение памяти под многомерный массив с помощью new |
|||
|
#18+
Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.04.2004, 00:47
|
|||
|---|---|---|---|
|
|||
Выделение памяти под многомерный массив с помощью new |
|||
|
#18+
Ну, если я не объявил второй размер массива константным, значит я его не знаю заранее, да? А в конструкции Код: plaintext все индексы, кроме первого, обязаны быть константыми выражениями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.04.2004, 03:11
|
|||
|---|---|---|---|
|
|||
Выделение памяти под многомерный массив с помощью new |
|||
|
#18+
Ты спросил, я ответил. Теперь твое творение: Код: plaintext 1. 2. Попробуем обратится к новоиспеченному массиву: t[0][0][0] = 0. Так, что наблюдаем? Правильно, ошибка защиты или тому подобное. Что остается: 1) либо использовать линейную развертку массива вычисляя самостоятельно индекс элемента int* arr3d = new int[3*10*24]; arr3d[i*10*24 +j*24 + k] = 0; 2) либо создать корректный многомерный массив по всем правилам: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. зы: других способов нет - никакие финты с приведением не спасут, да, слушИй. ззы: второй способ предпочтителен Лады, удач, да:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.04.2004, 03:59
|
|||
|---|---|---|---|
|
|||
Выделение памяти под многомерный массив с помощью new |
|||
|
#18+
Дело в том, что я недописал код, поскольку вопрос изначально был задан про выделение памяти под внешний указатель. На самом деле, конечно, должно быть так: Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.04.2004, 12:50
|
|||
|---|---|---|---|
|
|||
Выделение памяти под многомерный массив с помощью new |
|||
|
#18+
авторззы: второй способ предпочтителен Извини, конечно, не второй способ предпочтительней использовать, а линейную развертку многомерного массива, но здесь надо смотреть именно на задачу, может от второго способа и не уйти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=57&tablet=1&tid=2035071]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
47ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
26ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 335ms |

| 0 / 0 |
