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

Указатели в двумерном массиве - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Литература для начинающих http://www.cyberforum.ru/cpp-beginners/thread20131.html
всех с НГ!))) посоветуйте что почитать человеку который с программированием на Вы а в частности по С++...
C++ Вопрос про статический массив Люди, у меня вопрос, подскажите пожалуйста почему я не могу создать статический массив(не важно какого типа) больше 1 мегабайта (в среднем)? К примеру, статический массив типа char из 1000 000 элементов создается, но больше- нет, также и с типом int (примерно максимальное кол-во элементов можно создать 250 000, он занимает 4 байта, т.е. больше char в 4 раза, соответственно, кол-во элементов в 4... http://www.cyberforum.ru/cpp-beginners/thread20124.html
C++ Дан символьный файл f, содержащий сведения о сотрудниках учреждения
Дан символьный файл f, содержащий сведения о сотрудниках учреждения, записанные по следующему образцу: фамилия_имя_отчество,фамилия_имя_отчество,....Записать эти сведения в файле g, используя образец: имя_отчество_фамилия,имя_отчество_фамилия....
И снова числа Фибоначчи C++
Пожалуйсто помогите решить задачу, а то я уже убился с ней):" составить матрицу оброзованную из чисел Фибоначи по рядам( два первых числа =1)", матрица будет такая: 1 5 34 1 8 55 2 13 .. 3 21 ..
C++ Выделение памяти http://www.cyberforum.ru/cpp-beginners/thread20087.html
Какая разница между выделением памяти функциями malloc, calloc, realloc и оператором new? И как изменить размер выделенной памяти без потери текущих значений если память была выделена оператором new? Можно ли тогда использовать realloс?
C++ Найти сумму, разность, произведение и частное от деления первого числа на второе Даны два числа. Найтиих сумму, рахность, произведение и частное от деления первого числа на второе :help:, у меня просто небыло ни одного урока по C++, то есть я полный и 100% 0 подробнее

Показать сообщение отдельно
accept
4820 / 3240 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
02.01.2009, 18:17     Указатели в двумерном массиве
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
 
#include <stdio.h>
#include <stdlib.h>
 
#define M  4   /* количество строк квадратной матрицы */
#define K  0   /* число главной диагонали */
 
int **mtxcreat(int m, int n);
int **mtxprint(int **mtx, int m, int n, FILE *ofp);
void mtxfree(int **mtx, int m);
 
/* обнуляет главную диагональ симметричной квадратной матрицы */
main()
{
    int **m;
    int i, j, k;
    
    if ((m = mtxcreat(M, M)) == NULL)
        return 1;
    for (i = 0, k = 0; i < M; k++, i++)
        for (j = k; j < M; j++)
            if (j == k)
                m[i][j] = K;
            else {
                m[i][j] = rand()%10;
                m[j][i] = m[i][j];
            }
    mtxprint(m, M, M, stdout);
    mtxfree(m, M);
    return 0;
}
 
/* mtxcreat:  создаёт матрицу [ m x n ] */
int **mtxcreat(int m, int n)
{
    int **mtx, i;
    
    if ((mtx = (int **) calloc(m, sizeof(int *))) == NULL)
        return NULL;
    for (i = 0; i < m; i++)
        if ((mtx[i] = (int *) calloc(n, sizeof(int))) == NULL) {
            while (--i >= 0)
                free((void *) mtx[i]);
            free((void *) mtx);
            return NULL;
        }
    return mtx;    
}
 
/* mtxprint:  выводит матрицу mtx [ m x n ] в файл ofp */
int **mtxprint(int **mtx, int m, int n, FILE *ofp)
{
    int i, j;
    
    for (i = 0; i < m; i++)
        if (mtx[i] != NULL)
            for (j = 0; j < n; j++)
                fprintf(ofp, "%3d%s",
                    mtx[i][j], (j == n-1 ? "\n" : ""));
    return ferror(ofp) ? NULL : mtx;
}
 
/* mtxfree:  удаляет матрицу mtx на m строк из памяти */
void mtxfree(int **mtx, int m)
{
    int i;
    
    for (i = 0; mtx != NULL && i < m; i++)
        free((void *) mtx[i]);
    free((void **) mtx);
}
вывод
Код
[guest@localhost tmp]$ ./test
  0  3  6  7
  3  0  5  3
  6  5  0  5
  7  3  5  0
[guest@localhost tmp]$
без одномерной матрицы и указателей
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru