Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Sergeymd
0 / 0 / 0
Регистрация: 13.09.2009
Сообщений: 45
#1

Адресация методом Айлиффа - C++

03.05.2010, 23:09. Просмотров 781. Ответов 2
Метки нет (Все метки)

Необходимо создать адресацию в 4-х мерном массиве(base[3][3][2][4]) методом Aйлиффа. Вот чето не фурычит, ошибка памяти при запуске.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include <iostream>
using namespace std;
//sposob iliffe
int main()
{
    double init[72];
    for(int i = 0; i < 72; i++)
        init[i] = i;
 
    double ****base;
 
    double ***vect1[3];
 
    double **vect21[3];
    double **vect22[3];
    double **vect23[3];
 
    double *vect311[2];
    double *vect312[2];
    double *vect313[2];
 
    double *vect321[2];
    double *vect322[2];
    double *vect323[2];
 
    double *vect331[2];
    double *vect332[2];
    double *vect333[2];
 
//osnovnoi
    base=vect1;
//1-i na 3 razmernosti
    vect1[0] = vect21 + 3;
    vect1[1] = vect22 + 3;
    vect1[2] = vect23 + 3;
//2=oi na 3 razmernosti  
    vect21[0] = vect311 + 2;
    vect21[1] = vect312 + 2;
    vect21[2] = vect313 + 2;
 
    vect22[0] = vect321 + 2;
    vect22[1] = vect322 + 2;
    vect22[2] = vect323 + 2;
 
    vect23[0] = vect331 + 2;
    vect23[1] = vect332 + 2;
    vect23[2] = vect333 + 2;
//3-ii na 2 razmernosti
    vect311[0] = init;
           vect311[1] = init + 4;
           vect312[0] = init + 8;
    vect312[1] = init + 12;
           vect313[0] = init + 16;
    vect313[1] = init + 20;
 
    vect321[0] = init + 24;
    vect321[1] = init + 28;
    vect322[0] = init + 32;
    vect322[1] = init + 36;
    vect323[0] = init + 40;
    vect323[1] = init + 44;
 
    vect331[0] = init + 48;
    vect331[1] = init + 52;
    vect332[0] = init + 56;
    vect332[1] = init + 60;
    vect333[0] = init + 64;
           vect333[1] = init + 68;
//4-ii na 4 razmernosti eto sam init
 
double e = *( *( *( *(base + 1) + 1) + 1) + 0);
cout<<e;
return 0;
}
}
Добавлено через 1 час 29 минут
люди хэлп!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.05.2010, 23:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Адресация методом Айлиффа (C++):

Представление матрицы в виде векторов Айлиффа - C++
Нужно реализовать представление матрицы методом Айлиффа. С принципом ознакомился но как реализовать не знаю ...

Абсолютная и Относительная адресация. - C++
здравствуйте у меня такой вопрос. Вот я слышал что есть Абсолютный и Относительный адрес. из определения я понял что абсолютный...

Косвенная адресация объектов - C++
Здравствуйте есть необходимость собрать адреса созданных объектов в массив количество их известно . ну к примеру 5 штук. QObject ** Obj...

Адресация на другой срр файл - C++
всем привет можете подсказать как можно связать 2 срр файла сделал отдельно менюшку и эмулятор, как прописать чтоб при нажатии в меню...

Адресация и поиск переменной/функции - C++
Здравствуйте! Возникла такая задача. Есть какой-то .exe файл (х64). В иде я нашел переменную и её значение. Через артмани я нашел...

Статический массив, адресация указателями и индексами - C++
Задание написать 2 алгоритма заполнения статического массива из 10 элементов значением квадрата индекса этого элемента. 1) статический...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
CyBOSSeR
Эксперт C++
2300 / 1670 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
03.05.2010, 23:18 #2
Sergeymd, естественно вылетает - память под массивы не выделена, а в указателях мусор.
Цитата Сообщение от Sergeymd Посмотреть сообщение
C++
1
2
3
vect1[0] = vect21 + 3;
vect1[1] = vect22 + 3;
vect1[2] = vect23 + 3;
Каким образом ты представляешь сумму указателя и числа?
Sergeymd
0 / 0 / 0
Регистрация: 13.09.2009
Сообщений: 45
03.05.2010, 23:24  [ТС] #3
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
Sergeymd, естественно вылетает - память под массивы не выделена, а в указателях мусор.

Каким образом ты представляешь сумму указателя и числа?

спасибо все заработало, чето я затупил
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.05.2010, 23:24
Привет! Вот еще темы с ответами:

Указатели. Матрица и двойная косвенная адресация - C++
При метке 4, косяк..не могу понять..что-то с указателем? Помогите пожалуйста.. #include&lt;stdio.h&gt; #include&lt;locale.h&gt; ...

Перегрузка, адресация, объясните строчки кода - C++
Помогите разобраться что значат, делают приведенные строки кода: 1.В первой строке объявляется объект класса uravnenie, 3-я строка тоже...

Массивы, адресация, дин. исп памяти - C++
Задача:Заданы два массива А(5) и В(5). Подсчитать в них количество положительных элементов и первым на печать вывести массив, имеющий...

Адресация переменных: найти и исправить ошибку в коде - C++
Приветствую. Есть код: #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; int main() { int a; cin&gt;&gt;a; int...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru