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

 
 
> Использование двойного указателя, 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
Ответов
condor
сообщение Aug 11 2007, 14:11
Сообщение #2


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

Группа: Свой
Сообщений: 93
Регистрация: 18-06-05
Из: Kyiv, Ukraine
Пользователь №: 6 126



Цитата(Pasha 111 @ Aug 10 2007, 17:10) *
Всем привет! Пишу такой вот код:

Код
    uint8 array[] = {1, 2, 3, 4, 5, 6, 7};
    uint8 **a = (uint8 **)&array;
    uint8 aaa = a[0][5] // <-- Тут проц выбрасывает в Data Abort

Вы присваиваете переменной а адрес масива array.
Потом проц берет первый указатель по адресу а (если формат little-endian, то это 0х04030201).
И прибавив к нему 5 пытается прочитать память по адресу 0х04030206.
Конечно это вызовет Data Abort.

Цитата(Pasha 111 @ Aug 10 2007, 17:10) *
Пробовал писать даже так:

Код
    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

Это работать будет, но зачем здесь двойной указатель?!
Интересно как оно могло скомпилиться? smile.gif Дважды объявлена bbb.

Цитата(Pasha 111 @ Aug 10 2007, 17:10) *
Как воспользоваться двойным указателем? Что я делаю не так?

Объясните для чего вы хотите его использовать?
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 17:14
Рейтинг@Mail.ru


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