9 / 9 / 0
Регистрация: 15.07.2010
Сообщений: 255
|
|
1 | |
Передача параметров19.11.2010, 23:04. Показов 2142. Ответов 15
Метки нет (Все метки)
Добрый день!
Столкнулся со следующей ситуацией. При передаче 2-х мерного статического массива по указателю, в ф-ции, принимающей фактический параметр, происходит обращение к нулевому указателю. Одномерный массив передаётся прекрасно, но что не так с двухмерным?
0
|
19.11.2010, 23:04 | |
Ответы с готовыми решениями:
15
Передача параметров передача параметров в функцию Передача параметров в функцию Передача параметров в функцию |
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
|
|
19.11.2010, 23:07 | 2 |
alexsvk, Код покажите где у Вас
0
|
9 / 9 / 0
Регистрация: 15.07.2010
Сообщений: 255
|
||||||
19.11.2010, 23:38 [ТС] | 3 | |||||
0
|
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
|
|
19.11.2010, 23:48 | 4 |
alexsvk, Слишком мал кусочек кода что-бы сделать выводы, давайте весь код.
0
|
9 / 9 / 0
Регистрация: 15.07.2010
Сообщений: 255
|
|
19.11.2010, 23:53 [ТС] | 5 |
0
|
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
|
|
20.11.2010, 00:01 | 6 |
Опять не полный код, только догадываться можно:
- Вы элементам массива - Когда вызываете функцию void _Cross:raw(HWND **ptr,int i, int j), то i и j какие значения имеют? - Organism объект класса _Cross?
0
|
9 / 9 / 0
Регистрация: 15.07.2010
Сообщений: 255
|
|
20.11.2010, 00:51 [ТС] | 7 |
i = 0, j = 0;
Organism - указатель на class Drawer, наследником от которого является _Cross.
0
|
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
|
|
20.11.2010, 00:55 | 8 |
А по-поводу
0
|
9 / 9 / 0
Регистрация: 15.07.2010
Сообщений: 255
|
|
20.11.2010, 01:48 [ТС] | 9 |
Услышал краем уха, что static передавать нельзя через параметры. Почему вот только?
0
|
4727 / 2548 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
|
|
20.11.2010, 02:03 | 10 |
Я тоже услышал краем уха, что static передавать через параметры можно. Но на всякий случай напишу что нельзя. Вдруг пригодится. В партизан будем дальше играть, может кто и выиграет. На всякий случай сообщаю, что я не телепат. Подождите, может завтра утром выйдут в форум другие люди, может среди них окажутся телепаты, тогда помогут...
0
|
9 / 9 / 0
Регистрация: 15.07.2010
Сообщений: 255
|
|
20.11.2010, 02:44 [ТС] | 11 |
Честно, не пойму что ещё нужно выложить.
Программа не маленькая, всё выкладывать, "намыливая" глаза другим, - смысла нет. Скажите, что ещё нужно показать
0
|
Заблокирован
|
|||||||||||
20.11.2010, 03:29 | 12 | ||||||||||
Шикарно. Как по-твоему должен индексироваться двухмерный массив, когда известен только указатель на него?
Код
0
|
9 / 9 / 0
Регистрация: 15.07.2010
Сообщений: 255
|
|
20.11.2010, 12:47 [ТС] | 13 |
0
|
Заблокирован
|
|
20.11.2010, 16:35 | 14 |
0
|
20.11.2010, 17:10 | 15 | |||||
Кода из поста #5 вполне достаточно, чтобы понять суть проблемы. Массив, при передаче параметров передаётся как указатель на массив. А параметр HWND **ptr - это указатель на массив указателей (что совсем не то). Язык Си не позволяет напрямую передавать многомерные массивы параметром без указания измерений. Static тут не при чём
Посмотрим пост #9 в этой теме: Функции, передача массива в качестве параметра Добавлено через 4 минуты Хотя если у тебя нужно передавать массив с фиксированными измерениями, то надо писать
0
|
Заблокирован
|
|
20.11.2010, 17:41 | 16 |
Я так думаю, всё же нехорошо жёстко задавать в параметре функции размеры массива.
Даже, если в данный момент, нужен фиксированный массив.
0
|
20.11.2010, 17:41 | |
20.11.2010, 17:41 | |
Помогаю со студенческими работами здесь
16
Передача параметров в функцию Передача дефолтных параметров Передача параметров в функцию Передача параметров по ссылке Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |