Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 03.08.2017
Сообщений: 120

Обращение к трехмерному массиву

29.06.2023, 04:44. Показов 535. Ответов 1

Студворк — интернет-сервис помощи студентам
У меня скомпилировалось следующее выражение
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
long double(*Coefs)[32][256];
    Coefs = new long double[46][32][256];
 uint8_t i = 0,j=0;
uint16_t t=0;
while(i<46)
{
 j=0;
   while(j<32)
     {t=0;
       while(t<256)
        Coefs[i][j][t]=i*10.010+j*0.99+t*0.095,t++;
      j++;
     }
 
i++;
}
 
//...
delete[]Coefs;
Законно ли вообще такое обращение? Через некоторое время в контрольных точках Coefs показывается как
двумерный массив, обращения в программе как к трехмерному массиву компилятор пропускает, но я не уверен за значения.

Добавлено через 28 минут
Может надо было объявить
C++ (Qt)
1
long double(*Coefs)[46][32][256]
и правильно ли освобождается память?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.06.2023, 04:44
Ответы с готовыми решениями:

оптимизация, медленный доступ к трехмерному массиву
Здравствуйте, публикуюсь здесь потому что нет доступа к разделу экспертов. Требуется перевести буфер из одного формата в другой по...

Добавление памяти трёхмерному динамическому массиву
Есть некий динамический трёхмерный массив. При вызове функции к нему должен добавляться кусочек памяти (на деле всегда добавляется n,...

Обращение к массиву int b[[2][3][4]
Доброго всем дня! Помогите пожалуйста решить какое обращение к массиву int b даст двумерный массив размерностью 3х4?

1
89 / 74 / 24
Регистрация: 16.05.2023
Сообщений: 268
29.06.2023, 04:53
Код создает массив трехмерного указателя на long double, но не освобождает память после использования. В строке delete[] Coefs; должен быть вызов delete[] для каждого измерения массива, в данном случае для i, j и t.

Добавлено через 30 секунд
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <vector>
 
int main() {
    std::vector<std::vector<std::vector<long double>>> Coefs(46, std::vector<std::vector<long double>>(32, std::vector<long double>(256)));
 
    for (uint8_t i = 0; i < 46; i++) {
        for (uint8_t j = 0; j < 32; j++) {
            for (uint16_t t = 0; t < 256; t++) {
                Coefs[i][j][t] = i * 10.010 + j * 0.99 + t * 0.095;
            }
        }
    }
 
    return 0;
}
Добавлено через 1 минуту
1. Использован вектор вместо массива для динамической выделения памяти и удаления (new и delete).
2. Заменены типы long double на double, поскольку long double может быть неэффективным на некоторых платформах.
3. Удалены лишние переменные i, j и t из глобальной области видимости. Теперь они объявлены внутри циклов for.
4. Вместо вложенных циклов while используются вложенные циклы for. Это более понятно и облегчает чтение кода.
5. Исправлена ошибка в инкременте переменной t, чтобы она увеличивалась после присвоения значения элементу массива.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.06.2023, 04:53
Помогаю со студенческими работами здесь

ошибка в обращение к массиву
Можете подсказать почему у меня выдает ошибки на строках Mas=(i*z*y+j*z+k); и cout &lt;&lt;Mas&lt;&lt;&quot;/t&quot;; в коде, я...

Обращение к массиву структур
Структура объявлена в отдельной трансляции, там же объявлена функция заполнения двумерного массива структур, а по возвращении в main не...

Обращение к массиву структур
как обратиться к массиву структуры (arr) я пытаюсь это сделать в 64 строке, но выдает ошибку... #include &lt;string.h&gt; #include...

Матрицы (обращение к двумерному массиву)
Народ, решил на досуге для собственного использования создать класс матрица( пока пробный). Разумеется захотелось обращаться как к...

Адресное обращение к массиву структур
когда пробегаю по циклу, например, обращаюсь вот так: *(a+i).pole_1.pole_2 Так понел, что это неправильно. Как тогда, подскажите...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru