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

Выделить память для трёхмерного массива - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Где ошибка?! http://www.cyberforum.ru/cpp-beginners/thread83108.html
Сортировка массива. Создаю функцию swap... Загоняю в него 9 элементов, а он мне даёт 10! Прчём десятый, не заданное число, а какое то очень большое... (здесь - 2629904)! В чём дело?! #include <cstdlib> #include <iostream> #include <conio.h> #include <math.h> #include <stdio.h> #include <stdlib.h> #include <time.h> using namespace std; void swap(int *a, int *b)
C++ Перегрузка опереторов для пользовательских класов #include <iostream> #include <sstream> #include <string> #include <cmath> #include <windows.h> using namespace std; class T { http://www.cyberforum.ru/cpp-beginners/thread83098.html
Сортировка символов в файле C++
Люди добрые! Помогите с решение задачи :sigh: У меня что-то даже и идеи нет, как ее реализовать :( Помогите кто, пожалуйста :) Бинарный файл содержит произвольные данные. Упорядочить символы в файле так, что бы сначала располагались заглавные буквы латинского алфавита, затем цифры и, в конце, строчные буквы латинского алфавита. Остальные символы из файла удалить. Думаю рассматривать...
C++ в чем ошибка??
здравствуйте, пытаюсь компилировать программу, но появляется сообщение об ошибке в строке #include <iostream> не подскажете, в чём дело. ещё что-то не так с комментарием - unterminated comment это значит, что он слишком длинный? ) я описывала эту программу здесь:
C++ в шестнадцатеричном виде http://www.cyberforum.ru/cpp-beginners/thread83079.html
Написать программу, которая вводит с клавиатуры два натуральных числа и выполняет логическое умножение и сложение этих чисел. На экран должны быть выведены исходные числа и результаты операций в шестнадцатеричном виде.
C++ Глупый вопрос по считыванию символов с клавиатуры заранее извиняюсь за глупый вопрос, но ответ на него отгуглить не смог: n = getche не считывает нажатия на enter, но считывает пробелы cin.get(n) не считает пробел символом (считает разделителем), зато считывает переходы на новую строку как считывать строку, не теряя введенные пробелы и переходы на новую строку? я понимаю, что можно залезть в iostream или conio, и откорректировать... подробнее

Показать сообщение отдельно
accept
4837 / 3236 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
11.01.2010, 23:19     Выделить память для трёхмерного массива
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
76
77
78
79
80
#include <stdio.h>
#include <stdlib.h>
 
int main(void) /* C89 ANSI */
{
    int *p4, **p3, ***p6;
    int i, j, k;
    
    /*
    p4 = (int *) malloc(4 * sizeof *p4);
    
    p3 = (int **) malloc(3 * sizeof *p3);
    
    p6 = (int ***) malloc(6 * sizeof *p6);
    */
    
    /* все выделения памяти нужно проверять на NULL */
    
    p6 = (int ***) malloc(6 * sizeof *p6);
    
    for (i = 0; i < 6; i++) {
        
        p3 = (int **) malloc(3 * sizeof *p3);
        
        p6[i] = p3;
        
        for (j = 0; j < 3; j++) {
            
            p4 = (int *) malloc(4 * sizeof *p4);
            
            p6[i][j] = p4;
            
            for (k = 0; k < 4; k++) {
                if (i == 0 && j == 0 && k == 0) {
                    p6[0][0][0] = 10;
                    continue;
                }    
                p6[i][j][k] = k+1;
            }    
        
        }        
    
    }
    /* все выделения памяти нужно проверять на NULL */
        
    printf(
        "%d %d %d %d" "\n",
        p6[0][0][0],
        p6[0][0][1],
        p6[0][0][2],
        p6[0][0][3]
    );
    
    printf(
        "%d %d %d %d" "\n",
        p6[0][1][0],
        p6[0][1][1],
        p6[0][1][2],
        p6[0][1][3]
    );
        
    **p6 += 3;
    *p6 += 2;
    p6++;
    
    printf("%d" "\n", p6[-1][-2][-3]);
    
    p6--;
    *p6 -= 2;
    **p6 -= 3;
    
    for (i = 0; i < 6; i++) {
        for (j = 0; j < 3; j++)
            free(p6[i][j]);
        free(p6[i]);
    }
    free(p6);
        
    exit(EXIT_SUCCESS);
}
Добавлено через 53 секунды
Код
[guest@station src]$ ./test
10 2 3 4
1 2 3 4
10
[guest@station src]$
 
Текущее время: 23:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru