С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
sanya0107
121 / 121 / 4
Регистрация: 14.02.2010
Сообщений: 289
#1

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

03.12.2010, 20:04. Просмотров 299. Ответов 6
Метки нет (Все метки)

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

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

Указатели и массивы. Индексация с помощью указателей. Передача массивов в функции. Динамические массивы (обработка матриц) - C++
Для каждого элемента , bij, i= 1,...,n , j=1,...,n определяется свой многоугольник местонахождением соответствующего элемента aij (см....

Попадание точки. Массивы чисел. Массивы записей. - C++
Всем привет. По языкам задали три контрольные на си. Я сам си не знаю, даже не представляю, поэтому очень нужна ваша помощь. ...

Многомерные массивы, как перебирать внутренние массивы - C++
Здравствуйте. Такой учебный код и плохо понимаю как перебираются внутренние массивы, может кто пояснит подоходчивее. Именно внутренний...

Массивы структур, массивы векторов - C++
Разработайте тип данных «Вектор в трехмерном пространстве» в виде структуры, поля которой — координаты вектора. Напишите следующие функции:...

Массивы структур и массивы строк - C++
1. Сформировать динамический массив из элементов структурного типа. Структурный тип определен в варианте. 2. Распечатать...

6
panicwassano
592 / 560 / 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))
1
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
0
asics
Freelance
Эксперт С++
2850 / 1785 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
03.12.2010, 20:47 #4
Мб написАть
C
1
int main(void)
и 19 строку запиши так -
C
1
scanf("%i",&i);
0
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! Если это поможет!!
0
Rexer
163 / 162 / 20
Регистрация: 10.10.2010
Сообщений: 725
03.12.2010, 20:53 #6
и в конце почисти память функцией delete[] A; или free(A);
0
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;
}
0
03.12.2010, 21:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.12.2010, 21:25
Привет! Вот еще темы с ответами:

Массивы структур и массивы строк - C++
Здравствуйте. Возникла проблема с одной работой: Постановка задачи: 1. Сформировать динамический массив из элементов структурного типа....

массивы указателей,указатели на массивы - C++
Понимаю что тема эта изжевана, но я ещё жую.Хочу, чтобы усвоилось. допустим есть QStringList a; a.append(&quot;мамa&quot;); ...

массивы указателей,указатели на массивы - C++
Понимаю что тема эта изжевана, но я ещё жую.Хочу, чтобы усвоилось. допустим есть QStringList a; a.append(&quot;мамa&quot;); ...

индексные массивы и адресные массивы - C++
погитите решить задачу c массивами двумя способами {индексные и адресные} { Вычислить суммы элементов каждой строки матрицы Х(20х20),...


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

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

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