Описание тега dereference
Все, что связано с разыменованием указателя, то есть процессом определения объекта, на который ссылается указатель. Языки, имеющие переменные-указатели, обычно имеют специальный оператор для разыменования указателей (например, в C и C++, если `p` является допустимым указателем, `*p` - это объект, на который указывает `p`).
4
ответа
Разыменование типа указателя в sizeof()
У меня есть следующая структура: typedef struct _foo_t { int bar; float buzz; char quux[40]; } *const foo_t; Есть ли способ получить размер структуры, как это делается с помощью sizeof(struct _foo_t), но используя только имя foo_t? я пытался sizeof(…
03 июн '15 в 00:06
3
ответа
Проблема с разыменованием указателей
Я получаю сообщение об ошибке при попытке присвоить значение указателю. Я определил 2 структуры: typedef struct { struct player *next; //pointers struct player *prev; } player; typedef struct { player onMe; //object } field; позже в коде я создаю эк…
07 июл '13 в 13:12
2
ответа
Разыменовывать локальный массив в C
Насколько я понимаю C, вы можете рассматривать переменную-указатель и переменную-массив как эквивалентные, поскольку в конечном итоге они оба являются указателями (один на локальный стек функций, другой на любую произвольную точку в памяти). Я обычн…
26 сен '18 в 03:49
2
ответа
Изменение значения указателя на символ в c приводит к segfault
Следующий код вызывает ошибку сегментации в моей системе. Я не могу понять, почему. Любая помощь будет оценена. #include<stdio.h> int main() { char * a = "abc"; *a = 'c'; printf("%c\n", *a); return 0; }
04 мар '11 в 04:47
3
ответа
Какова цель размера байта типа переменной, если я знаю адрес переменной?
Я не понимаю цели работы с байтовым размером переменной, зная ее адрес. Например, скажем, я знаю, где хранится переменная int, скажем, она хранится в адресе 0x8C729A09Если я хочу получить int, сохраненный в этом адресе, я могу просто разыменовать ад…
25 сен '12 в 20:39
2
ответа
Ошибка "Выражение: векторный итератор не подлежит исправлению"
Следующий код вводит слова и подсчитывает, сколько раз каждое слово появилось на входе. Затем программа печатает каждое слово и соответствующую частоту в порядке от самого низкого до самого высокого. #include <iostream> #include <map> #i…
18 июн '15 в 23:09
2
ответа
Разница между оператором -> и указателем * (C++)
Я знаю это -> Оператор может быть указателем на направление переменной, но зачем использовать его, когда у вас есть * оператор указателя, в чем разница, и могу ли я предпочесть один другому? например: a*b означает, что указатель на b (правильно? …
23 фев '17 в 10:02
1
ответ
Как мне мысленно разобрать это утверждение?
Я столкнулся со следующим утверждением, и был опровергнут. ++(*q)->len; q представляется непрерывным массивом памяти, который, судя по всему, представляет собой массив указателей на structs; справиться с новой кодовой базой, извините за неопредел…
08 мар '17 в 16:13
3
ответа
Использование оператора разыменования в векторах C++
Разница между 1) и 2) и каковы будут их значения: 1) double h = (*Jill_data)[5]; 2) double h = *Jill_data[5]; когда у нас есть vector<double>* Jill_dataс данными: {2, 4, 6, 8, 10, 12, 14, 16}.
17 май '16 в 06:49
1
ответ
Почему мы используем оператор (*) для объявления функций в C++?
Я заметил, что во многих случаях люди используют оператор "*" при объявлении функций в классе или снаружи. бывший - T* sortArray(T data[], int arrsize); Savings * newSavings(int NaccntNo); Итак, я хотел бы знать, почему мы используем эту "*" операто…
20 апр '14 в 08:23
1
ответ
Скорость разыменования свойств класса в фортране
Я ожидаю ответа, как не волнуйтесь, об этом позаботится компилятор, но я не уверен. Когда я создаю какой-то метод в каком-то пользовательском типе / классе в Фортране, происходит ли какое-либо снижение производительности из-за ссылок на поля / разым…
20 июн '14 в 11:22
1
ответ
Указатель void, приведенный к указателю на символ, падает при разыменовании
Я пытаюсь реализовать алгоритм DJB в C, чтобы построить словарь, как структура. Моя реализация работает хорошо, если переданный ключ является указателем на символ, однако, если я передаю, например, целое число, оно выходит из строя, я не уверен, поч…
23 дек '18 в 21:35
2
ответа
Разыменование класса с перегруженным * оператором
Я пытаюсь создать указатель на класс с перегруженным оператором *, но он возвращает другое значение. Код класса: template<class T> class Node { public: T *pointer; T& operator*() { return *pointer; } } Тогда этот код не работает, возвращая…
07 дек '13 в 17:42
1
ответ
Perl: Разыменование ссылки на хэш в скаляр?
Почему разыменование ссылки на хэш в хэш и присвоение его скаляру не имеет значения (по крайней мере для меня)? Код: my $hash = { 1 => 9, 2 => 10, 3 => 11, 4 => 12, 5 => 13, 6 => 14, 7 => 15, 8 => 16, }; my $dereferenced = %$…
23 янв '14 в 07:08
3
ответа
Назначение указателя в C++. (Указатель на указатель на указатель находится на LHS)
IDirect3DSurface9 *var = NULL; IDirect3DSurface9 *** ret; Я хочу присвоить значение, разыменованное var, в переменную, на которую указывает ret. Я сделал следующее: (*(*(ret[0]))) = var; Я чувствую, что это правильный синтаксис C++. Но почему я полу…
22 мар '12 в 10:38
3
ответа
Невозможно разыменовать итераторы вектора
Я не понимаю, в чем проблема с этой функцией, я сделал что-то очень похожее на это в прошлом, и она работала нормально, но теперь, когда я пытаюсь запустить эту функцию, я получаю ошибку "Unable to dereference vector iterator" Это приходит на линию …
24 апр '15 в 18:09
2
ответа
Оператор mysqli: fetch() массив результатов
Я использую расширение MySQL и связываю результат с объектом: class Item { public $id, $name; } $Item = new Item; $stmt->bind_result($Item->id, $Item->name); Каждый звонок $stmt->fetch() перезапишет свойства $Item, которые стали ссылками…
01 авг '10 в 01:46
2
ответа
C++ Разыменование char-Pointer (массив изображений) очень медленно
У меня возникли проблемы с быстрым доступом к массиву неподписанных символов. Я хочу на самом деле скопировать массив кодированных изображений BGRABGRA....BGRABGRA.... с аналогичной версией в OpenCV-версию, которая использует три слоя. Приведенный н…
09 фев '11 в 17:20
3
ответа
C++: Почему приведение в качестве указателя, а затем разыменование работает?
Недавно я работал над сокетами в C++, и я столкнулся с этим: *(struct in_addr*)&serv_addr.sin_addr.s_addr = *(struct in_addr *)server->h_addr; Хотя это делает то, что я хочу, я немного запутался, почему я не могу сделать это: (struct in_addr)…
24 сен '11 в 01:00
1
ответ
При разыменовании вектора для установки значения весь вектор перезаписывается
Я объявляю вектор и базовый элемент, что по сути означает, что слот открыт в моем заголовочном файле: template <typename K, typename V> class Map_Hash { private: vector<KeyValue<K,V>*> *hashTable; KeyValue<K,V> *baseElt; } Я …
23 фев '18 в 06:09