Запитання з тегом «pointers»

Тип даних, що "вказує" на інше значення, збережене в пам'яті. Змінна вказівника містить адресу пам'яті якоїсь іншої сутності (змінної чи функції чи іншої сутності). Цей тег слід використовувати для запитань щодо використання покажчиків, а не посилань. Найпоширенішими мовами програмування, що використовують покажчики, є мови C, C ++, Go та збірки. Використовуйте певний мовний тег. Інші корисні теги - метод, функція, структура тощо, що описують використання покажчика.

2
Чи можу я викликати memcpy () та memmove () з "кількістю байтів", встановлених на нуль?
Чи потрібно мені ставитися до випадків, коли мені фактично нічого рухати / копіювати з memmove()/ memcpy()як крайові випадки int numberOfBytes = ... if( numberOfBytes != 0 ) { memmove( dest, source, numberOfBytes ); } або я повинен просто викликати функцію без перевірки int numberOfBytes = ... memmove( dest, source, numberOfBytes …
102 c++  c  pointers  memcpy  memmove 

4
Який сенс мати вказівники в Go?
Я знаю, що покажчики в Go дозволяють мутувати аргументи функції, але чи не було б простіше, якби вони прийняли лише посилання (з відповідними const або змінними кваліфікаторами). Зараз у нас є покажчики, а для деяких вбудованих типів, таких як карти та канали, неявний перехід за посиланням. Мені чогось не вистачає …
100 pointers  go 

3
Чи може вказівник на базу вказувати на масив похідних об'єктів?
Я сьогодні пішов на співбесіду на роботу і мені дали це цікаве запитання. Окрім витоку пам’яті та відсутності віртуального dtor, чому цей код виходить з ладу? #include <iostream> //besides the obvious mem leak, why does this code crash? class Shape { public: virtual void draw() const = 0; }; class …
99 c++  pointers 



5
Як збільшити адресу вказівника та значення вказівника?
Припустимо, int *p; int a = 100; p = &a; Що насправді буде робити наступний код і як? p++; ++p; ++*p; ++(*p); ++*(p); *p++; (*p)++; *(p)++; *++p; *(++p); Я знаю, це досить брудно з точки зору кодування, але я хочу знати, що насправді станеться, коли ми кодуємо так. Примітка: Припустимо, …
96 c  pointers 

4
Як оголосити std :: unique_ptr і яка від нього користь?
Я намагаюся зрозуміти, як це std::unique_ptrпрацює, і для цього знайшов цей документ. Автор починає з наступного прикладу: #include <utility> //declarations of unique_ptr using std::unique_ptr; // default construction unique_ptr<int> up; //creates an empty object // initialize with an argument unique_ptr<int> uptr (new int(3)); double *pd= new double; unique_ptr<double> uptr2 (pd); // …
95 c++  pointers  std  unique-ptr 

17
У чому сенс покажчиків на функції?
У мене проблеми з переглядом корисності покажчиків на функції. Я думаю, це може бути корисним у деяких випадках (зрештою, вони існують), але я не можу подумати про випадок, коли краще або неминуче використовувати покажчик функції. Не могли б ви навести якийсь приклад хорошого використання покажчиків на функції (на C або …
94 c++  c  function  pointers  c++-faq 

6
C # Зберігання функцій у словнику
Як створити словник, де я можу зберігати функції? Дякую. У мене є близько 30+ функцій, які можна виконати від користувача. Я хочу мати можливість виконати функцію таким чином: private void functionName(arg1, arg2, arg3) { // code } dictionaryName.add("doSomething", functionName); private void interceptCommand(string command) { foreach ( var cmd in dictionaryName …

12
Розміщення зірочки в деклараціях покажчиків
Нещодавно я вирішив, що мені просто потрібно нарешті вивчити C / C ++, і є одна річ, якої я насправді не розумію щодо покажчиків або, точніше, їх визначення. Як щодо цих прикладів: int* test; int *test; int * test; int* test,test2; int *test,test2; int * test,test2; Зараз, наскільки я розумію, …
92 c++  c  pointers  declaration 

6
Видалення вказівника в C ++
Контекст: Я намагаюся обернути голову навколо покажчиків, ми щойно бачили їх пару тижнів тому в школі, і сьогодні, практикуючись, я натрапив на дурного? Проблема може бути для вас надзвичайно простою, але я майже не маю досвіду програмування. У SO я бачив чимало запитань щодо видалення покажчиків, але всі вони, здається, …

5
Правильний спосіб оголошення змінних покажчика в C / C ++ [закрито]
В даний час це питання не підходить для нашого формату запитань та відповідей. Ми очікуємо, що відповіді будуть підтверджені фактами, посиланнями чи експертизою, але це питання, швидше за все, вимагатиме дебатів, аргументів, опитування чи розширеного обговорення. Якщо ви вважаєте, що це питання можна покращити і, можливо, знову відкрити, відвідайте довідковий …
91 c++  c  pointers  coding-style 

29
Тестування покажчиків на валідність (C / C ++)
Чи є спосіб визначити (звичайно, програмно), чи вказаний покажчик є "дійсним"? Перевірити наявність NULL легко, але як щодо таких речей, як 0x00001234? При спробі розблокування цього виду вказівника відбувається виняток / збій. Переважний крос-платформенний метод, але певний для платформи (для Windows та Linux) також є нормальним. Оновлення для роз’яснення: проблема …
91 c++  c  validation  pointers  null 

1
Що таке "жирний покажчик" у Rust?
Я вже читав термін "жирний покажчик" у декількох контекстах, але не знаю, що саме він означає і коли він використовується в Rust. Вказівник, здається, удвічі більший за звичайний, але я не розумію, чому. Здається, це також має щось спільне з об’єктами ознак.
91 pointers  rust 

8
Чи можна ініціалізувати вказівник C на NULL?
Я писав такі речі char *x=NULL; припускаючи, що char *x=2; створив би charвказівник на адресу 2. Але в підручнику з програмування GNU C сказано, що int *my_int_ptr = 2;ціле число зберігається 2до будь-якої випадкової адреси, my_int_ptrколи воно виділяється. Здається, це означає, що мій власний char *x=NULLприсвоює будь-яке значення NULLприведення charдо …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.