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

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

5
Різниця між * ptr + = 1 і * ptr ++ у С
Я щойно почав вивчати C, і, роблячи один приклад про передачу вказівника на покажчик як параметр функції, я виявив проблему. Це мій зразок коду: #include <stdio.h> #include <string.h> #include <stdlib.h> int* allocateIntArray(int* ptr, int size){ if (ptr != NULL){ for (int i = 0; i < size; i++){ ptr[i] = …

11
Чому пов'язані списки використовують покажчики замість того, щоб зберігати вузли всередині вузлів
Я раніше широко працював із пов'язаними списками на Java, але я дуже новачок у C ++. Я використовував цей клас вузлів, який мені було дано в проекті просто чудово class Node { public: Node(int data); int m_data; Node *m_next; }; але у мене було одне запитання, на яке не дуже …

21
Чому для нульового вказівника використовується нульова адреса?
У C (або C ++ для цього питання) вказівники є особливими, якщо вони мають значення нуля: мені рекомендується встановлювати покажчики в нуль після звільнення їх пам'яті, оскільки це означає, що звільнення вказівника знову не небезпечно; коли я дзвоню malloc, він повертає вказівник зі значенням нуль, якщо він не може отримати …
121 c++  c  memory  pointers 


10
Створіть вказівник на двовимірний масив
Мені потрібен вказівник на статичний двовимірний масив. Як це робиться? static uint8_t l_matrix[10][20]; void test(){ uint8_t **matrix_ptr = l_matrix; //wrong idea } Я отримую всілякі помилки, такі як: попередження: призначення від несумісного типу вказівника підписане значення не є ні масивом, ні вказівником помилка: недійсне використання гнучких елементів масиву
119 c  arrays  pointers 

9
C покажчики: вказівка ​​на масив фіксованого розміру
Це питання стосується гуру С: В C можна вказати вказівник так: char (* p)[10]; .. що в основному говорить, що цей вказівник вказує на масив з 10 символів. Акуратний факт оголошення такого покажчика полягає в тому, що ви отримаєте помилку часу компіляції, якщо спробуєте призначити вказівник масиву різного розміру на …
119 c  pointers  size 

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



10
Чи вільний (ptr), де ptr - NULL пошкоджена пам'ять?
Теоретично я можу це сказати free(ptr); free(ptr); це пошкодження пам’яті, оскільки ми звільняємо вже звільнену пам’ять. Але що робити, якщо free(ptr); ptr=NULL; free(ptr); Оскільки ОС буде вести себе невизначено, я не можу отримати фактичний теоретичний аналіз цього щодо того, що відбувається. Що б я не робив, це пошкодження пам’яті чи …

3
Чому цей код є стандартним для 64-розрядної архітектури, але добре працює у 32-розрядному?
Я натрапив на таку загадку C: Питання: Чому на IA-64 наведена нижче програма, але вона працює чудово на IA-32? int main() { int* p; p = (int*)malloc(sizeof(int)); *p = 10; return 0; } Я знаю, що розмір int64-бітної машини може бути не такий, як розмір вказівника ( intможе бути 32 …

6
Що робить таке використання покажчиків непередбачуваним?
Зараз я навчаюсь вказівниками, і мій професор наводив цей приклад коду: //We cannot predict the behavior of this program! #include <iostream> using namespace std; int main() { char * s = "My String"; char s2[] = {'a', 'b', 'c', '\0'}; cout << s2 << endl; return 0; } Він написав …
108 c++  pointers 

2
Значення приймача порівняно з приймачем покажчика
Для мене дуже незрозуміло, у якому випадку я б хотів використовувати приймач значення, а не завжди використовувати приймач вказівника. Щоб скласти резюме з документів: type T struct { a int } func (tv T) Mv(a int) int { return 0 } // value receiver func (tp *T) Mp(f float32) float32 …
108 function  pointers  go 

2
Плутанина "<type> - вказівник на інтерфейс, а не інтерфейс"
Шановні колеги-розробники, У мене є ця проблема, яка мені здається трохи дивною. Погляньте на цей фрагмент коду: package coreinterfaces type FilterInterface interface { Filter(s *string) bool } type FieldFilter struct { Key string Val string } func (ff *FieldFilter) Filter(s *string) bool { // Some code } type FilterMapInterface interface …
104 pointers  go  interface 

2
Як зробити буквальний * int64 в Go?
У мене є тип struct із *int64полем. type SomeType struct { SomeField *int64 } У якийсь момент у своєму коді я хочу оголосити це буквальним (скажімо, коли я знаю, що вказане значення має бути 0, або вказуючи на 0, ви розумієте, що я маю на увазі) instance := SomeType{ SomeField: …
103 pointers  go  struct  literals 

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