Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
jonygibson
0 / 0 / 1
Регистрация: 24.04.2014
Сообщений: 139
1

Ошибка в выделении памяти под 3х мерный массив

21.12.2014, 17:04. Просмотров 360. Ответов 2
Метки нет (Все метки)

Здравствуйте. Мне нужна трехмерная таблица для реализации одного метода... Мне нужна реализация для n=2.
т.е смотрите. Таблица должна быть такая. 2 строки и n+1 столбец и 3 измерение n. т.е при n=2. получится 2 строки 3 столбца и 2 ячейки вглубь. потом я делаю n=1, для того , чтобы во 2 строке таблицы небыло 3 измерения. т.е простым языком таблица в обьёме выглядит как ступенька. Где то туплю с указателями помогите...
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
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<math.h>
#define a 1
#define b 0.5
#define y 2
float F(float x1, float x2);
void creator(float ****primary_table,int n);
void destroyer(float ***primary_table,int n);
int main()
{
    int n;
    float ***primary_table;
    printf("input n ",n);
    scanf("%d",&n);
    creator(&primary_table,n);
    destroyer(primary_table,n);
    return(0);
}
void creator(float ****primary_table,int n)
{
    int i,j,t,l=n+1;
    *primary_table = (float***)malloc(2*sizeof(float**));
for(i=0;i<=1;i++)
{
    (*primary_table)[i] = (float**)malloc(l*sizeof(float*));
    for(j=0;j<l;j++)
    {
        (*primary_table)[i][j]=(float*)malloc(n*sizeof(float));
        for(t=0;t<n;t++)
        {
            printf("primary_table[%d][%d][%d] = ",i,j,t);
            scanf("%f",&primary_table[i][j][t]);
            printf("\n");
        }
    }
    n=1;
}
    
}
void destroyer(float ***primary_table, int n)
{
    int i,j,k,l=n+1;
    for(i=0; i<=1; i++)
    {
        for(j=0; j < l; j++)
        {
            free(primary_table[i][j]);
        };
        free(primary_table[i]);
    };
    free(primary_table);
};
 
float F(float x1, float x2)
{
    return(4*((x1-5)*(x1-5))+(x2-6)*(x2-6));
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.12.2014, 17:04
Ответы с готовыми решениями:

Ошибка в выделении памяти
Почему-то если делаю &quot;реаллок&quot; или &quot;маллок&quot;, то они выделяют память только на 1 клеточку. ...

Нужно вместо числа 15 в выделении памяти под структуру подставить некую константу
FILE *energy; int number; void OpenMain() { int i=0, amount=1; if...

Ошибка при выделении памяти
что-то не так с выделением памяти, после запуска выдает ошибку, не могу понять где налажал...

Ошибка выделения памяти под массив
Есть двумерный массив. Создается он таким образом: int **createArray(int m, int n) { int i,...

Ошибка при выделении памяти под двумерный массив
#include &lt;iostream&gt; using namespace std; class array { int size1, size2; char **matr;...

2
jonygibson
0 / 0 / 1
Регистрация: 24.04.2014
Сообщений: 139
21.12.2014, 17:12  [ТС] 2
Вот такая должна получиться таблица при n=2
строки будет всегда 2 !!!
0
Миниатюры
Ошибка в выделении памяти под 3х мерный массив  
jonygibson
0 / 0 / 1
Регистрация: 24.04.2014
Сообщений: 139
21.12.2014, 17:13  [ТС] 3
Таблица перестаётся заполняться на 3 столбце.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.12.2014, 17:13

Почему не вылетает ошибка при выделении памяти под динамический массив, размером 100 Гб?
Здравствуйте, знатоки! Столкнулся с проблемой выделения памяти под динамические массивы. При...

Выравнивание при динамическом выделении памяти под массив
Добрый вечер. Для того, чтобы выделить память под массив динамически и выровнять указатель по 16...

Ошибка при выделении памяти под вектор методом resize
Всем добрый день! Возник следующий вопрос: выделяю память для вектора с помощью метода resize(w*h)....


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

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

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