реклама на сайте
подробности

 
 
> Использование двойного указателя, SAM7S64, IAR
Pasha 111
сообщение Aug 10 2007, 14:10
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 154
Регистрация: 6-11-05
Из: Москва
Пользователь №: 10 515



Всем привет! Пишу такой вот код:

Код
    uint8 array[] = {1, 2, 3, 4, 5, 6, 7};

    uint8 **a = (uint8 **)&array;
    uint8 aaa = a[0][5] // <-- Тут проц выбрасывает в Data Abort


Пробовал писать даже так:

Код
    uint8 array[] = {1, 2, 3, 4, 5, 6, 7};

    uint8 *qqq = array;
    uint8 **bbb = &qqq;
    uint8 *aaa = bbb[0];
    uint8 bbb = aaa[5]; // <-- Тут проц выбрасывает в Data Abort


Как воспользоваться двойным указателем? Что я делаю не так?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Pasha 111
сообщение Aug 11 2007, 21:18
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 154
Регистрация: 6-11-05
Из: Москва
Пользователь №: 10 515



Ура! Все заработало! \всем большое спасибо за помощь!

Видимо есть разница между
uint8 **a = &array;
и
uint8 *a[] = {array};
ибо втором случае компилятор понимают, что от него хотят, а в первом - взятие адреса и просто конвертирование типов данных.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 23:09
Рейтинг@Mail.ru


Страница сгенерированна за 0.0253 секунд с 7
ELECTRONIX ©2004-2016