Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Двумерный массив в функцию 
:(
    Опции темы
Z_P
Дата 13.12.2004, 00:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 4.10.2003
Где: это я?

Репутация: нет
Всего: нет



Как двумерный массив можно передать в функцию?

С простым массивом получается.
PM MAIL   Вверх
Marriage
Дата 13.12.2004, 00:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 842
Регистрация: 4.5.2004
Где: Таганрог

Репутация: нет
Всего: 2



int a[123][123];

MyFunc( (Int**)a );

По-моему где то так, если не получилось - прости, давно в С не сидел.

Это сообщение отредактировал(а) Marriage - 13.12.2004, 00:18


--------------------
Praemonitus, praemunitus
PM MAIL ICQ   Вверх
sergejzr
Дата 13.12.2004, 00:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 19
Всего: 360



Что конкретно не получается?
Вот работающий пример:
Код

#include "stdio.h"

void do_massiv(char **str, int cnt)
{
for(int i=0;i<cnt;i++)
{
 printf("%s\n",str[i]);
}
}
int main()
{
 char** str=new char*[16];
 for(int i=0;i<16;i++)
 {
   str[i]="element";
 }
 do_massiv(str,16);
 return 0;
}



--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
azesmcar
Дата 13.12.2004, 08:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 81
Всего: 211



То ли я вопроса не понял то ли у меня компилятор не такой как у всех...
а че так не работает???
Код

void func(int a[10][10])
{

}

void main()
{
   int a[10][10];
   func(a);
}

PM   Вверх
En_t_end
Дата 13.12.2004, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2074
Регистрация: 4.12.2004

Репутация: 1
Всего: 20



MyFunc( (Int**)a );
А где же обьявление типа ?...
PM MAIL ICQ Skype GTalk Jabber   Вверх
Marriage
Дата 13.12.2004, 22:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 842
Регистрация: 4.5.2004
Где: Таганрог

Репутация: нет
Всего: 2



Цитата

А где же обьявление типа ?...



int a[123][123];
А это что тогда ????



--------------------
Praemonitus, praemunitus
PM MAIL ICQ   Вверх
Z_P
Дата 14.12.2004, 00:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 4.10.2003
Где: это я?

Репутация: нет
Всего: нет



Странно.. в чем же тогда суть проблемы? smile

Код

#include <iostream.h>

const int Kstrok=3;
  int Kstolbsov=4;
void printmatrih(int b[Kstrok][Kstolbsov]);

int main()
{
int matrix[Kstrok][Kstolbsov]={{1,2,3,4},{2,5,5,4}, {3,2,4,5}};
   printmatrih(matrix);

return 0;
}

void printmatrih(int b[Kstrok][Kstolbsov]);
{
for (int i=0; i<Kstrok; i++)
 {

for (int j=0; j<Kstolbsov; i++)
cout<<b[i][j]<<" ";
cout<<endl;
 }
return;

}



PM MAIL   Вверх
sergejzr
Дата 14.12.2004, 00:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 19
Всего: 360



Z_P, это на каком языке и компилере?

Код

void printmatrih(int b[Kstrok][Kstolbsov]);

Добавлено @ 00:52
Величина массива дожна быть определна до компиляции! иначе придётся использовать new
Т.е так:
Код

#include <iostream.h>

const int Kstrok=3;
int Kstolbsov=4;
void printmatrih(int b[3][4]);

int main()
{
   int matrix[3][4]={{1,2,3,4},{2,5,5,4}, {3,2,4,5}};
   printmatrih(matrix);
   return 0;
}

void printmatrih(int b[3][4])
{
for (int i=0; i<Kstrok; i++)
 {
   for (int j=0; j<Kstolbsov; i++)
   cout<<b[i][j]<<" ";
   cout<<endl;
 }
 return;
}

Или так:
Код

#include <iostream.h>

#define Kstrok 3
#define Kstolbsov 4
void printmatrih(int b[Kstrok][Kstolbsov]);

int main()
{
   int matrix[Kstrok][Kstolbsov]={{1,2,3,4},{2,5,5,4}, {3,2,4,5}};
   printmatrih(matrix);

   return 0;
}

void printmatrih(int b[Kstrok][Kstolbsov])
{
for (int i=0; i<Kstrok; i++)
 {

for (int j=0; j<Kstolbsov; i++)
cout<<b[i][j]<<" ";
cout<<endl;
 }
return;

}





--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Z_P
Дата 14.12.2004, 02:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 4.10.2003
Где: это я?

Репутация: нет
Всего: нет



sergej.z Язык С, компилирую через MS Visual C++ 6.

СПАСИБО! Второй вариант то что я и хотел.
Теперь 0 ошибок и 0 предупреждений, но при запуске выдает ошибку сама Win..
Что это могло бы быть?

А у тебя нормально компилится?
PM MAIL   Вверх
sergejzr
Дата 14.12.2004, 02:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 19
Всего: 360



Ну это уже по твоей части smile smile

в строке:
Цитата
for (int j=0; j<Kstolbsov; i++)


должно быть:
Цитата
for (int j=0; j<Kstolbsov; j++)


Пользуйся отладчиком smile


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
En_t_end
Дата 14.12.2004, 07:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2074
Регистрация: 4.12.2004

Репутация: 1
Всего: 20



Marriage
Надо было тип функции объявить...
PM MAIL ICQ Skype GTalk Jabber   Вверх
Z_P
Дата 14.12.2004, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 4.10.2003
Где: это я?

Репутация: нет
Всего: нет



Всем за помощь - спасибо! Все прекрасно работает!
Отдельное спасибо sergej.z!
smile



smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0867 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.