C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Двумерный массив, Двумерный массив тип char
Leonid
Отправлено: 30.07.2005, 07:48


Не зарегистрирован







Я делаю такое объявление: MAS [256] [8], заполняю этот массив данными, т. е.
for (int i = 0; i < 255; i++)
memcpy (MAS [i], ..., sizeof (...));

Пока все нормально. Но когда пытаюсь передать в функцию один из 8-и мерных массивов, вместо получаю весь массив MAS [256].

Функция такая:
int func (char * name)
{
...
}

Что я делаю не так?
olegenty
Отправлено: 30.07.2005, 08:09


Ветеран

Группа: Модератор
Сообщений: 2412



ты лучше покажи, как ты один из восьмимерных массивов массивов передаёшь.
Leond
Отправлено: 30.07.2005, 08:13


Не зарегистрирован







Так.

func (char * name)

func (MAS [i]);

В Си это работает!
olegenty
Отправлено: 30.07.2005, 08:27


Ветеран

Группа: Модератор
Сообщений: 2412



покажи код, где массив объявляешь,
код заполнения
код использования, где проявляется ошибка
Leonid
Отправлено: 30.07.2005, 08:37


Не зарегистрирован







Ладно с массивом уже разобрался. Но у меня другой глюк.

Такая ф-ия: func (TStrings * List)

{
List->Add ("...");
}

Туды я передаю: func (Form1->Memo1->List);

И ошибка обращения к памяти.
olegenty
Отправлено: 30.07.2005, 09:06


Ветеран

Группа: Модератор
Сообщений: 2412



Ну, во-первых, не
CODE
func (Form1->Memo1->List);

а
CODE
func (Form1->Memo1->Lines);

а во-вторых, ошибка кроется в многоточии в твоей функции:
CODE
{
List->Add ("...");
}

вот там, где у тебя многоточие, и потестируй...
Leonid
Отправлено: 30.07.2005, 09:18


Не зарегистрирован







Что не так?

AnsiString st;

st = "Hello world!!!";

func (TStrings * Lines)
{
Lines->Add (st);
}

func (Form1->Memo1->Lines);
Leonid
Отправлено: 30.07.2005, 09:24


Не зарегистрирован







Да и вообще, когда смотрю в отладчике, то у Form1->Memo1->Lines адрес 00A7B8...., этол на входе в фунцию, а в самой ф-ии
Lines имеет адрес 04B6FFFFFF. Глюк?
olegenty
Отправлено: 30.07.2005, 09:42


Ветеран

Группа: Модератор
Сообщений: 2412



прежде чем писать свой пост я написал именно такой пример, только вместо "Hello World" у меня было "test". всё великолепно работает...

Вернуться в Вопросы программирования в C++Builder