Pytania oznaczone «pointers»

89
Wskaźnik funkcji do funkcji składowej

Chciałbym ustawić wskaźnik funkcji jako element członkowski klasy, który jest wskaźnikiem do innej funkcji w tej samej klasie. Powody, dla których to robię, są skomplikowane. W tym przykładzie chciałbym, aby wynik miał wartość „1” class A { public: int f(); int (*x)(); } int A::f() {...

89
magia shared_ptr :)

Pan Lidström i ja pokłóciliśmy się :) Pan Lidström twierdzi, że konstrukcja shared_ptr<Base> p(new Derived);nie wymaga, aby Base miał wirtualnego destruktora: Armen Tsirunyan : "Naprawdę? Czy shared_ptr wyczyści się poprawnie? Czy mógłbyś w tym przypadku zademonstrować, jak można...

88
Jak porównać wskaźniki?

Załóżmy, że mam 2 wskazówki: int *a = something; int *b = something; Jeśli chcę je porównać i sprawdzić, czy wskazują na to samo miejsce, czy (a == b) działa?

85
Jaka jest różnica między odwołaniem C # a wskaźnikiem?

Nie do końca rozumiem różnicę między odwołaniem C # a wskaźnikiem. Oboje wskazują na miejsce w pamięci, prawda? Jedyną różnicą, jaką mogę zrozumieć, jest to, że wskaźniki nie są tak sprytne, nie mogą wskazywać niczego na stercie, są wyłączone z czyszczenia pamięci i mogą odnosić się tylko do...

82
Przykład użycia shared_ptr?

Cześć Zadałem dziś pytanie o to, jak wstawiać różne typy obiektów w tej samej tablicy wektorowej, a mój kod w tym pytaniu był gate* G[1000]; G[0] = new ANDgate() ; G[1] = new ORgate; //gate is a class inherited by ANDgate and ORgate classes class gate { ..... ...... virtual void Run() {...

81
const char * i char const * - czy są takie same?

Z mojego punktu widzenia constmodyfikatory należy czytać od prawej do lewej. Z tego wynika, że: const char* jest wskaźnikiem, którego elementy char nie mogą być modyfikowane, ale sam wskaźnik może, a char const* jest stałym wskaźnikiem do mutableznaków. Ale otrzymuję następujące błędy dla...

81
„Int * nums = {5, 2, 1, 4}” powoduje błąd segmentacji

int *nums = {5, 2, 1, 4}; printf("%d\n", nums[0]); powoduje segfault, podczas gdy int nums[] = {5, 2, 1, 4}; printf("%d\n", nums[0]); nie. Teraz: int *nums = {5, 2, 1, 4}; printf("%d\n", nums); wydruki 5. Opierając się na tym, przypuszczałem, że notacja inicjalizacji tablicy {} ślepo...

80
Wydrukuj adres lub wskaźnik wartości w C

Chcę zrobić coś, co wydaje się dość proste. Otrzymuję wyniki, ale problem polega na tym, że nie mam możliwości sprawdzenia, czy wyniki są prawidłowe. Pracuję w C i mam dwie wskazówki; Chcę wydrukować zawartość wskaźnika. Nie chcę wyłuskiwać wskaźnika, aby uzyskać wskazaną wartość, chcę tylko...

59
Co robi ((void (*) ()) buf) (); oznaczać?

Rozwiązuję binarne wyzwanie dotyczące eksploatacji na picoCTF i natrafiłem na następujący fragment kodu: ((void (*)())buf)(); gdzie bufjest tablica znaków. Rozwiązałem wyzwanie, ale nie rozumiem, co dokładnie robi. Spojrzałem na ten wątek, ale nie mogłem go zrozumieć. Co ((void...