Вопросы с тегом «pointers»

121
Какие реализации смарт-указателя C ++ доступны?

Сравнение, плюсы, минусы и когда использовать? Это побочный продукт ветки сборки мусора, где то, что я считал простым ответом, вызвало много комментариев о некоторых конкретных реализациях интеллектуальных указателей, поэтому казалось, что стоит начать новый пост. В конечном итоге вопрос...

120
Создать указатель на двумерный массив

Мне нужен указатель на статический двумерный массив. Как это сделать? static uint8_t l_matrix[10][20]; void test(){ uint8_t **matrix_ptr = l_matrix; //wrong idea } Я получаю всевозможные ошибки, например: предупреждение: присваивание из несовместимого типа указателя индексируемое значение не...

120
Указатели C: указывающие на массив фиксированного размера

Этот вопрос уходит к гуру Си: В C можно объявить указатель следующим образом: char (* p)[10]; .. что в основном означает, что этот указатель указывает на массив из 10 символов. При объявлении подобного указателя замечательно то, что вы получите ошибку времени компиляции, если попытаетесь назначить...

118
Почему по умолчанию указатели не инициализируются значением NULL?

Может кто-нибудь объяснить, почему указатели не инициализируются NULL? Пример: void test(){ char *buf; if (!buf) // whatever } Программа не будет входить в if, потому что bufне является нулем. Я хотел бы знать, зачем и в каком случае нам нужна переменная с мусором, особенно указатели, обращающиеся...

114
Умные указатели: кому принадлежит объект? [закрыто]

Трудно сказать, о чем здесь спрашивают. Этот вопрос неоднозначный, расплывчатый, неполный, чрезмерно широкий или риторический, и на него нельзя разумно ответить в его нынешней форме. Чтобы прояснить этот вопрос и снова открыть его, посетите Справочный центр . Закрыт 8 лет назад . С ++ - это все о...

113
Вызов методов класса C ++ через указатель на функцию

Как получить указатель на функцию для функции-члена класса, а затем вызвать эту функцию-член с конкретным объектом? Я хочу написать: class Dog : Animal { Dog (); void bark (); } … Dog* pDog = new Dog (); BarkFunction pBark = &Dog::bark; (*pBark) (pDog); … Также, если возможно, я хотел бы...

113
Повреждает ли память (ptr), где ptr - NULL?

Теоретически могу сказать, что free(ptr); free(ptr); - это повреждение памяти, поскольку мы освобождаем уже освобожденную память. А вдруг free(ptr); ptr=NULL; free(ptr); Поскольку ОС будет вести себя неопределенным образом, я не могу получить фактический теоретический анализ происходящего. Что бы я...

112
Почему этот код имеет segfault в 64-битной архитектуре, но нормально работает в 32-битной?

Я наткнулся на следующую загадку C: В: Почему следующая программа имеет segfault на IA-64, но нормально работает на IA-32? int main() { int* p; p = (int*)malloc(sizeof(int)); *p = 10; return 0; } Я знаю, что размер intна 64-битной машине может отличаться от размера указателя ( intможет быть 32...

108
Приемник значения против приемника указателя

Для меня очень непонятно, в каком случае я хотел бы использовать приемник значения вместо того, чтобы всегда использовать приемник указателя. Резюмируя из документов: type T struct { a int } func (tv T) Mv(a int) int { return 0 } // value receiver func (tp *T) Mp(f float32) float32 { return 1 } //...

108
«<Тип> - это указатель на интерфейс, а не на интерфейс».

Уважаемые коллеги-разработчики! У меня возникла эта проблема, которая мне кажется немного странной. Взгляните на этот фрагмент кода: package coreinterfaces type FilterInterface interface { Filter(s *string) bool } type FieldFilter struct { Key string Val string } func (ff *FieldFilter) Filter(s...

104
Могу ли я вызвать memcpy () и memmove () с нулевым «количеством байтов»?

Нужно ли мне случаи лечат , когда я actully не имею ничего перемещать / копировать с memmove()/ memcpy()в крайних случаях int numberOfBytes = ... if( numberOfBytes != 0 ) { memmove( dest, source, numberOfBytes ); } или мне просто вызвать функцию без проверки int numberOfBytes = ... memmove( dest,...

103
Где shared_ptr?

Я так расстроен прямо сейчас, после нескольких часов попыток найти, где находится shared_ptr. Ни в одном из примеров, которые я вижу, не показан полный код, включающий заголовки shared_ptr(и работающий). Просто констатировать std, tr1а <memory>совсем не помогает! Я скачал бусты и все такое,...

102
Сколько накладных расходов на интеллектуальные указатели по сравнению с обычными указателями в C ++?

Сколько накладных расходов на интеллектуальные указатели по сравнению с обычными указателями в C ++ 11? Другими словами, будет ли мой код медленнее, если я использую интеллектуальные указатели, и если да, то насколько медленнее? В частности, я спрашиваю о C ++ 11 std::shared_ptrи std::unique_ptr....

100
Какой смысл в указателях в Go?

Я знаю, что указатели в Go позволяют изменять аргументы функции, но было бы проще, если бы они принимали только ссылки (с соответствующими константными или изменяемыми квалификаторами). Теперь у нас есть указатели и для некоторых встроенных типов, таких как карты и каналы, неявная передача по...

99
Может ли указатель на базу указывать на массив производных объектов?

Сегодня я пришла на собеседование и мне задали этот интересный вопрос. Помимо утечки памяти и отсутствия виртуального dtor, почему этот код дает сбой? #include <iostream> //besides the obvious mem leak, why does this code crash? class Shape { public: virtual void draw() const = 0; }; class...