Вопрос к знатокам Си - как обявить указатель со свойствами двумерного массива?
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
|
Отправлено
bialix 20 декабря 2003 г. 13:14
|
|
|
|
Никак не могу найти правильный метод объявить указатель, который можно использовать как базовый адрес двумерного массива, т.е. чтобы к нему можно было обращаться так:
pointer[i][j]
В классическом Си это похоже нельзя сделать по определению, поскольку как-то? надо указать размер младшей размерности. Сейчас нашел только способ явного приведения указателя к двумерному массиву, например для массива 5*8 это может выглядеть так:
((unsigned char[5][8])pointer)[i][j]
И что вы думаете? Этот прием работает например в кейле, но имеет один неприятный побочный эффект, связанный со спецификой именно кейла, поэтому мне не подходит. Да и выглядит криво. Может есть еще варианты?
PS: Если кто не знает, но все равно хочет посоветовать, пожалуйста, попробуйте свои советы предварительно проверять на своем Си-компиляторе на работоспособность, а потом уж постите :-)
Составить ответ
|||
Конференция
|||
Архив
Ответы
- Ответ: ну вы , блин, даете — -Тумблер- (20.12.2003 16:07, 444 байт)
- Не понял, а почему нельзя объявить двумерный массив указателей? Или что ты хочешь? — .............. (20.12.2003 15:49, пустое)
- Или я чего-то крупно не понял в вопросе, или — ReAl (20.12.2003 15:27, 521 байт)
- ..не мужики, хи хи.. даже я не выдержал. Вот так: — blackbit (20.12.2003 15:02, 261 байт)
- Вопрос конечно интересный, но — Bill (20.12.2003 14:42, 709 байт)
- Ответ: Например так — kurt (20.12.2003 14:42, 117 байт)
- в базовом си хотя бы одна размерность должна быть указана явно, т.е (+), иначе ток вручную... — иа (20.12.2003 13:52, 30 байт)
- я не знаток С и явно не понял о чём идёт речь.. то что у меня работает выглядит так: (+) — Max_Fly (20.12.2003 13:35, 302 байт)
- а такой вариант разве не работает? (+) — 0men (20.12.2003 13:35, 106 байт)
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
|||
Без кадра
E-mail:
info@telesys.ru