![]() |
|
Модераторы: bsa |
![]()
|
|
| konshyn |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 295 Регистрация: 19.9.2013 Репутация: нет Всего: нет |
Всем примет!
у меня есть функция
и есть массив статический
как можно передать этот массив в функцию? пишу:
программа компилируется, но при обращии в самой функции к массиву, к примеру a[0][0], происходит ошибка в памяти. Это сообщение отредактировал(а) konshyn - 15.10.2013, 15:53 -------------------- «Потому что ценность акта действия в этой стране возрастает в несколько раз». |
||||||
|
|||||||
| NightmareZ |
|
|||
![]() [хакер] ![]() ![]() Профиль Группа: Участник Сообщений: 699 Регистрация: 10.8.2006 Репутация: 0 Всего: 13 |
Никак. Твоя функция в случае с двухмерным массивом должна знать размер хотя бы одного измерения. Т.е. нужно функцию переделать:
-------------------- NightmareZ.net - мой блог и сайт, мои проекты и прочий трэш Ely-Art.ru - наша маленькая домашняя арт-студия mugcraft.ru - кружки на любой вкус |
|||
|
||||
| konshyn |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 295 Регистрация: 19.9.2013 Репутация: нет Всего: нет |
А как же указатель на указатель? Я указываю на адрес первого элемента своего дмерного массива. Что-то такое ведь должно быть.. -------------------- «Потому что ценность акта действия в этой стране возрастает в несколько раз». |
|||
|
||||
| akizelokro |
|
|||
![]() Крокодил ![]() ![]() Профиль Группа: Участник Сообщений: 761 Регистрация: 30.7.2007 Репутация: 1 Всего: 5 |
кажисть, так. -------------------- a = a + b; b = a - b; a = a - b; |
|||
|
||||
| feodorv |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 12 Всего: 45 |
Совершенно разная структура у двумерного массива (это непрерывный массив данных размером 4 * 256 * sizeof(int) байт) и указателем на указатель (тогда предполагается линейный массив указателей на линейные массивы интегеров). В принципе, может прокатить
но это нужно сверяться со стандартом. Лучше всего последовать примеру NightmareZ. Это сообщение отредактировал(а) feodorv - 15.10.2013, 20:03 -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
||||
|
|||||
| akizelokro |
|
||||
![]() Крокодил ![]() ![]() Профиль Группа: Участник Сообщений: 761 Регистрация: 30.7.2007 Репутация: 1 Всего: 5 |
Ну, грубо говоря, если я не напутал, то вызывая f(&a) я обхожусь без грубого приведения и обеспечиваю сигнатуру f(int** b). Ты же передавая в функцию a, передаёшь лишь указатель на int. Это сообщение отредактировал(а) akizelokro - 15.10.2013, 22:18 -------------------- a = a + b; b = a - b; a = a - b; |
||||
|
|||||
| konshyn |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 295 Регистрация: 19.9.2013 Репутация: нет Всего: нет |
Понял. :(
Спасибо:) -------------------- «Потому что ценность акта действия в этой стране возрастает в несколько раз». |
|||
|
||||
| NoviceF |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 313 Регистрация: 13.3.2012 Где: Ростов-на-Дону Репутация: 2 Всего: 2 |
вообще очень сомнительная конструкция с точки зрения безопасности кода.. что помешает произойти такой ситуации:
С массивами в функцию обычно передают и их размер. Правда двумерными мне как-то пользоваться не приходилось, но думаю в этом случае было бы разумно использовать тот же принцип. |
||||
|
|||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |