Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Papayaved
75 / 75 / 8
Регистрация: 24.09.2015
Сообщений: 335
1

На что указывает указатель на массив?

28.06.2018, 12:20. Просмотров 339. Ответов 21
Метки нет (Все метки)

На что указывает указатель на массив? С указателем на первый элемент все понятно - он указывает на первый элемент массива, но более точно было бы сказать, что это указатель на массив

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
unsigned char buf[1518];
 
typedef struct {
    ...
    unsigned char (* p_data)[1518];
} Packet;
 
Packet packet;
 
void Parse(unsigned char buf[1518]) {
    ... // Parse packet
   packet.p_data = &buf;
}
 
void func(unsigned char value) {
    (*packet.p_data)[42] = value;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.06.2018, 12:20
Ответы с готовыми решениями:

Что такое указатель на массив и как им пользоваться?
Всем привет! Нужна информация по сабжу, как объявлять, и что вообще представляет собой(указатель на...

Указатель на массив строк - В функции Test печатается непонятно что из памяти
Здравствуйте, Есть часть кода(см. ниже). Объясните, почему в функции Test печатается непонятно...

для чего нужен указатель head и на что он указывает?
для чего нужен указатель head и на что он указывает? для чего нужен указатель next в типе...

Объявить в классе-наследнике указатель, указывающий туда же, куда указывает указатель в классе-родителе
Здравствуйте. Имеется базовый класс MainWindow: #ifndef MAINWINDOW_H #define MAINWINDOW_H...

Указатель куда указывает?
Вопрос в комментарии к программе int main() { int count = 0; char str = "atutau"; char...

21
Croessmah
++Ͻ
15221 / 8614 / 1637
Регистрация: 27.09.2012
Сообщений: 21,194
Записей в блоге: 2
Завершенные тесты: 1
29.06.2018, 13:54 21
Ну это смотря как посмотреть.
C
1
packet.p_data = &buf;//Здесь будет ошибка компиляции, т.к. buf - это char *.
http://rextester.com/VSNU61971

И даже если это соберется (например, в GCC без флага -pedantic-errors), то в p_data будет лежать адрес параметра функции.
0
Papayaved
75 / 75 / 8
Регистрация: 24.09.2015
Сообщений: 335
29.06.2018, 14:05  [ТС] 22
Croessmah,

корректно инициализировать через функцию вот так

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int (* p_arr)[5];
 
void func1(int (* data)[5]) {
    p_arr = data;
}
           
void func2() {
     printf("np_arr[3] = %d\n (*p_arr)[3] = %d\n", p_arr[3], (*p_arr)[3]);
}
 
int main(void)
{
    int buf[10] = {11, 12, 13, 14, 15};
    func1(&buf);
    func2();
    return 0;
}
Добавлено через 3 минуты
Croessmah, у меня немного другой компилятор я пишу на xC

https://en.wikipedia.org/wiki/XC_(programming_language)

он это съел
0
29.06.2018, 14:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.06.2018, 14:05

Узнать указывает ли указатель
Доброго времени суток. Постановка задачи такова: есть указатель на массив, надо удалить массив, а...

Куда указывает указатель
Подскажите я обращаюсь к адресу допустим 0xA4EF4 и так указатель который указывает на 0xA4EF5(это...

Указатель не указывает на CHAR
Доброго всем здравия, совсем запутался, написал примитивный код, а он гад не работает. Как такое...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru