Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.03.2009, 18:56   #1
-zeus-
Пользователь
 
Регистрация: 11.03.2009
Сообщений: 11
Печаль Borland C: динамический двухмерный массив в

Здравствуйте, помогите пожалуйста студенту разобраться с 2-х мерным динамическим массивом. Создаю его так:

Код:
int s=9; // размер
int far **mas; // собственно сам виновник
Или нужно без фар? А то нам так на лекции показали...
mas=(int far **)malloc(sizeof(int *)*s);
for (i=0; i<s; i++)
 mas[i]=(int far *)malloc(sizeof(int)*s);
Надеюсь правильно? =)) Дальше нужно его передать функции "spiral" как параметр. Делаю так:
spiral(mas, s); // передаю массив и его размер

Далее самое непонятное:
Как обратиться к какому-то элементу массива в самой функции???
И каковы должны быть ее параметры при обьявленни?

Последний раз редактировалось MaTBeu; 11.03.2009 в 19:20.
-zeus- вне форума Ответить с цитированием
Старый 11.03.2009, 19:05   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Что за far?
Правильно:
Код:
int **mas;
mas = (int**)malloc(sizeof(int *)*s);
for (i=0; i<s; i++)
mas[i]=(int*)malloc(sizeof(int)*s);
Цитата:
ак обратиться к какому-то элементу массива в самой функции???
Объявите функцию:
Код:
int spiral(int** M, int s)
И обращайтесь: M[i][j]

Вот пример:

Код:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

int fun(int **M, int R)
{
 int i,j;
 for(i=0;i<R;i++)
  for(j=0;j<R;j++)
   M[i][j] = 0;
}

int main(){
int s=9,i,j;

int **mas;
mas = (int**)malloc(sizeof(int *)*s);
for (i=0; i<s; i++)
mas[i]=(int*)malloc(sizeof(int)*s);

for (i=0;i<s;i++)
 {
  for(j=0;j<s;j++)
  {
   mas[i][j] = i*10+j;
   printf("%4d",mas[i][j]);
  }
 printf("\n");
}
printf("---------\n");

fun(mas,s);

for (i=0;i<s;i++)
 {
  for(j=0;j<s;j++)
   printf("%4d",mas[i][j]);
 printf("\n");
}
printf("---------\n");

getch();
return 0;
}
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 11.03.2009, 19:12   #3
-zeus-
Пользователь
 
Регистрация: 11.03.2009
Сообщений: 11
По умолчанию

СПАСИБИЩЕ !!!
ОГРОМНОЕ ТАКОЕ !!!
-zeus- вне форума Ответить с цитированием
Старый 11.03.2009, 19:15   #4
-zeus-
Пользователь
 
Регистрация: 11.03.2009
Сообщений: 11
По умолчанию

Ой, на радостях забыл спросить, как освободить память?
Просто free(mas) ???
-zeus- вне форума Ответить с цитированием
Старый 11.03.2009, 19:17   #5
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

-zeus-, да, совсем забыл ))

Как создаем, так и очищаем:
Код:
for(i=0;i<s;i++)
 free(mas[i]);
free(mas);
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 11.03.2009, 19:20   #6
-zeus-
Пользователь
 
Регистрация: 11.03.2009
Сообщений: 11
По умолчанию

Спасибо ще раз!
-zeus- вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамический двухмерный массив С++ EfiopianDIMON Общие вопросы C/C++ 7 19.11.2008 23:38
Двухмерный массив на поле Grigoriy251 Gamedev - cоздание игр: Unity, OpenGL, DirectX 2 21.09.2008 11:52
двухмерный массив Enchantner Паскаль, Turbo Pascal, PascalABC.NET 3 22.04.2008 20:47
Двухмерный массив xtraSHAD0W Паскаль, Turbo Pascal, PascalABC.NET 2 22.04.2008 18:17
Двухмерный массив Atheist Общие вопросы C/C++ 4 22.11.2007 14:05