pointers ×7
Создан 03.01.2025
0
голоса
5
ответов
17
просмотров
Что такое ** в C++?

Описание проблемы

Я столкнулся с некоторым кодом, а также с ошибками, которые сгенерировал мой компилятор, содержащими токен ** перед переменной (например, имя_переменной unreferenced - или что-то подобное, точно не помню). Я довольно уверен, что это связано с указателями. Если бы мне...

0
голоса
0
ответов
24
просмотров
Почему код явно вызывает статический метод через указатель, равный null?

Я видел подобный код в нескольких старых проектах:

class Class {
    static void Method() {}
};

((Class*)0)->Method();

Этот код содержит неопределенное поведение, так как включает разыменование нулевого указателя (что бы ни происходило после этого). Он действительно не имеет смысла —...

0
голоса
1
ответов
18
просмотров
Статические глобальные переменные в C++

Я хотел бы создать массив целых чисел с помощью метода malloc. Я хочу, чтобы этот массив был глобальным и использовался в любом месте моей программы. Я поместил код в заголовочный файл, который выглядел так:

static int *pieces;

Затем я создал функцию, которая заполняет массив нужными...

5
голоса
5
ответов
31
просмотров
Определение typedef для указателя на функцию?

Я изучаю, как динамически загружать DLL, но не могу понять следующую строку кода:

typedef void (*FunctionFunc)();

У меня есть несколько вопросов. Буду признателен, если кто-то сможет на них ответить.

  1. Зачем используется typedef?
  2. Синтаксис выглядит странно; после void не должно...
20
голоса
0
ответов
68
просмотров
Сравнение регулярного приведения типов, static_cast и dynamic_cast

Суть проблемы:

Я пишу на C и C++ почти двадцать лет, но есть один аспект этих языков, который я никогда не понимал. Я, конечно, использовал обычные преобразования (касты), например:

MyClass *m = (MyClass *)ptr;

Но есть еще два типа приведения типов, и я не знаю, чем они...

19
голоса
5
ответов
62
просмотров
Почему следует использовать указатель вместо самого объекта?

Я пришёл из мира Java и начал работать с объектами в C++. Но меня смутило, что многие разработчики часто используют указатели на объекты, а не сами объекты. Например, вот так:

Object *myObject = new Object;

вместо этого:

Object myObject;

Также, вместо того чтобы...

18
голоса
5
ответов
55
просмотров
Разница между const int*, const int * const и int * const?

Я всегда путаюсь, как правильно использовать const int *, const int * const и int * const. Существенно ли их различие? Существуют ли какие-то правила, определяющие, что можно, а что нельзя делать с этими указателями?

Мне нужно знать все "можно" и "нельзя" в контексте присваивания, передачи...