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

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

Восстановить пароль Регистрация
 
Sergeymd
 Аватар для Sergeymd
0 / 0 / 0
Регистрация: 13.09.2009
Сообщений: 45
03.05.2010, 23:09     Адресация методом Айлиффа #1
Необходимо создать адресацию в 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++
Указатели. Матрица и двойная косвенная адресация C++
Перегрузка, адресация, объясните строчки кода C++
C++ Статический массив, адресация указателями и индексами
C++ Адресация на другой срр файл

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2293 / 1663 / 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
 Аватар для Sergeymd
0 / 0 / 0
Регистрация: 13.09.2009
Сообщений: 45
03.05.2010, 23:24  [ТС]     Адресация методом Айлиффа #3
Цитата Сообщение от CyBOSSeR Посмотреть сообщение
Sergeymd, естественно вылетает - память под массивы не выделена, а в указателях мусор.

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

спасибо все заработало, чето я затупил
Yandex
Объявления
03.05.2010, 23:24     Адресация методом Айлиффа
Ответ Создать тему
Опции темы

Текущее время: 03:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru