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

Массивы в С - C++

Восстановить пароль Регистрация
 
sanya0107
 Аватар для sanya0107
121 / 121 / 4
Регистрация: 14.02.2010
Сообщений: 289
03.12.2010, 20:04     Массивы в С #1
Подскажите как будет выглядеть объявление так называемого динамического двумерного массива NxN
вот например в C++
это выглядит:
C++
1
2
3
int **A=new int*[n];
           for (int i=0; i<n; i++)
               A[i]=new int[n];
Как такое реализуется в Си??
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2010, 20:04     Массивы в С
Посмотрите здесь:

Циклические массивы;Многомерные массивы!!!Срочно бы) C++
Одномерные массивы, Работа со строками, Многомерные массивы. C++
C++ Попадание точки. Массивы чисел. Массивы записей.
Целочисленная арифметика ,Одномерные массивы ,Двумерные массивы C++
Указатели и массивы. Индексация с помощью указателей. Передача массивов в функции. Динамические массивы (обработка матриц) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
panicwassano
590 / 558 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
03.12.2010, 20:22     Массивы в С #2
C
1
2
3
int **A = (int*)malloc(n*sizeof(int));
for (int i = 0; i < n; i ++)
    A[i] = (int*)malloc(n*sizeof(int))
sanya0107
 Аватар для sanya0107
121 / 121 / 4
Регистрация: 14.02.2010
Сообщений: 289
03.12.2010, 20:43  [ТС]     Массивы в С #3
Цитата Сообщение от panicwassano Посмотреть сообщение
C
1
2
3
int **A = (int*)malloc(n*sizeof(int));
for (int i = 0; i < n; i ++)
    A[i] = (int*)malloc(n*sizeof(int))
Попытался следую вашим указаниям проделать такое:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
 main()
{ int i=0,j=0,n=0;
 
scanf("%i",&n);
 
int **A=(int*)malloc(n*sizeof(int));
  for ( i=0; i<n; i++)
   A[i]=(int *) malloc(n*sizeof(int));
 
for (i=0;i<n;i++)
 for ( j=0;j<n; j++)
  scanf("%i",&A[i][j]);
 
 for ( i=0;i<n;i++)
  for ( j=0;j<n;j++)
   printf("%d   ",A[i][j]);
 
scanf("%i",i);
 
return 0;
}
не получилось
Выдало ошибки
7: E[pression syntax in function main
9: Udenfined symbol 'A' in function main
9: Invalid indirection in functiom main
13:Invalid indirection in functiom main
17:Invalid indirection in functiom main
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
03.12.2010, 20:47     Массивы в С #4
Мб написАть
C
1
int main(void)
и 19 строку запиши так -
C
1
scanf("%i",&i);
sanya0107
 Аватар для sanya0107
121 / 121 / 4
Регистрация: 14.02.2010
Сообщений: 289
03.12.2010, 20:53  [ТС]     Массивы в С #5
Цитата Сообщение от asics Посмотреть сообщение
Мб написАть
C
1
int main(void)
и 19 строку запиши так -
C
1
scanf("%i",&i);
и так писал
C
1
int main (void)
а в 19-й строке это не важно я не задаю значение а просто приостанавливаю программу для показа результат!!

ругается на объявление именно массива А!!

Работаю с TurboC201! Если это поможет!!
Rexer
 Аватар для Rexer
151 / 150 / 19
Регистрация: 10.10.2010
Сообщений: 691
03.12.2010, 20:53     Массивы в С #6
и в конце почисти память функцией delete[] A; или free(A);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.12.2010, 21:25     Массивы в С
Еще ссылки по теме:

C++ Двумерные массивы(массивы указателей на массивы)
C++ Массивы. Циклические алгоритмы (Заполнить массивы случайными числами, лежащими в интервале 0 до 100)
C++ Многомерные массивы и массивы символьной строки

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

Или воспользуйтесь поиском по форуму:
sanya0107
 Аватар для sanya0107
121 / 121 / 4
Регистрация: 14.02.2010
Сообщений: 289
03.12.2010, 21:25  [ТС]     Массивы в С #7
Цитата Сообщение от Rexer Посмотреть сообщение
и в конце почисти память функцией delete[] A; или free(A);
если я не ошибаюсь если тут используется malloc то delete не пойдет!!!!
И у меня проблема с самим созданием массива, а не удаление!!!

Добавлено через 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
#include <stdio.h>
int  main(void)
{ int i=0,j=0,n=0;
  int **A;
scanf("%i",&n);
 
A=(int**)calloc(n*sizeof(int));
  for ( i=0; i<n; i++)
   A[i]=(int *) calloc(n*sizeof(int));
 
for (i=0;i<n;i++)
 for ( j=0;j<n; j++)
  scanf("%i",&A[i][j]);
 
 for ( i=0;i<n;i++)
  for ( j=0;j<n;j++)
   printf("%d   ",A[i][j]);
 
scanf("%i",&i);
 
     for (i=0; i<n; i++)
    free (*(A[i]));
      free (A);
return 0;
}
Yandex
Объявления
03.12.2010, 21:25     Массивы в С
Ответ Создать тему
Опции темы

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