pointers

Jak mogę przydzielić pamięć i zwrócić ją (poprzez wskaźnik-parametr) do funkcji wywołującej?

Mam jakiś kod w kilku różnych funkcjach, który wygląda mniej więcej tak: void someFunction (int *data) { data = (int *) m ... ów? Więc np. dane są int **data = NULL; //used for 2D array Czy muszę używać potrójnych wskaźników w wywołaniach funkcji?

Co się dzieje w systemie operacyjnym, gdy dereferujemy wskaźnik NULL w C?

Załóżmy, że istnieje wskaźnik i inicjalizujemy go za pomocą NULL. int* ptr = NULL; *ptr = 10; Teraz program się zawiesi, p ... to jest po prostu wiedzieć, co dzieje się wewnętrznie w OS lub kompilatora w takim przypadku. I to nie jest duplikat pytania.

Malloc wewnątrz wywołania funkcji wydaje się być uwolniony po powrocie?

Myślę, że mam to do najbardziej podstawowego przypadku: int main(int argc, char ** argv) { int * arr; foo(arr); prin ... r_break to debug > Jeśli ktoś może rzucić światło na to, gdzie moje zrozumienie zawodzi, byłoby to bardzo mile widziane.

Dlaczego nie jest to legalne, aby przekonwertować "wskaźnik do wskaźnika do non-const" na " wskaźnik do wskaźnika do const"

It is legal to convert a pointer-to-non-const to a pointer-to-const. To dlaczego nie jest legalne, aby przekształcić Wskaźn ... od jest nielegalny: char *s1 = 0; const char *s2 = s1; // OK... char *a[MAX]; // aka char ** const char **ps = a; // error!

Czy const-poprawność daje kompilatorowi więcej miejsca na optymalizację?

Wiem, że poprawia czytelność i sprawia, że program jest mniej podatny na błędy, ale jak bardzo poprawia wydajność? A na marg ... jaka jest główna różnica między referencją a wskaźnikiem const? Zakładam, że są inaczej przechowywane w pamięci, ale jak to?

Dlaczego listy połączone używają wskaźników zamiast przechowywania węzłów wewnątrz węzłów

Pracowałem już z listami linkowanymi w Javie, ale jestem nowy w C++. Używałem tej klasy węzłów, która została mi dana w proje ... o tym, jak wskaźnik jest lepszy do alokacji pamięci, i zastanawiałem się, czy ktoś tutaj może pomóc mi lepiej zrozumieć, że.

Znaczenie int ( * ) (int*) = 5 (lub dowolna wartość całkowita)

Nie mogę tego rozgryźć: int main() { int (*) (int *) = 5; return 0; } Powyższe zadanie kompiluje się z g++ c++11. ... aźnik funkcji jest do funkcji, która zwraca jakiś wskaźnik, nie kompiluje się, np. z some_data_type ** (*) () = any_value;

Czy NULL zawsze jest zerem w C?

Przeprowadzałem wczoraj wywiad z facetem na średnim poziomie inżynierii oprogramowania i wspomniał, że w C, NULL nie zawsze j ... ie, czy ma rację? (Odpowiedzi nie wpłyną na moją ocenę tego kandydata, już przedłożyłem swoją decyzję mojemu menedżerowi.)

Dereferencing type - wskaźnik łamie zasady strict-aliasing

Użyłem poniższego fragmentu kodu do odczytu danych z plików w ramach większego programu. double data_read(FILE *stream,int c ... e twój kod. W końcu nie chcę ignorować ostrzeżeń. Co byś polecił? [update] podstawiłem przykład zabawki prawdziwą funkcją.

Dlaczego cudaMalloc () używa wskaźnika do wskaźnika?

Na przykład, cudaMalloc((void**)&device_array, num_bytes); To pytanie było zadawane wcześniej, a odpowiedź brzmiała " ... u zostanie umieszczony w catch_status i zwrócenie prostego wskaźnika do przydzielonej pamięci GPU powinno wystarczyć, prawda?

Jak mogę wywołać przepełnienie bufora?

Dostałem zadanie domowe z prośbą o wywołanie funkcji bez jawnego wywoływania jej, używając przepełnienia bufora. Kod jest w z ... rzejść bezpośrednio do adresu g (), ale nie jestem pewien, jak uzyskać do niego dostęp. W każdym razie, napiwki będą świetne.

Jak utworzyć dwie klasy w C++, które używają siebie nawzajem jako danych?

Chcę utworzyć dwie klasy, z których każda zawiera obiekt innego typu klasy. Jak mogę to zrobić? Jeśli nie mogę tego zrobić, c ... h:3, from main.cpp:1: bar.h:6: error: ‘foo’ does not name a type bar.h:8: error: ‘foo’ does not name a type

Jak zrozumieć gwiazdkę wskaźnika * w C?

Zmagam się ze znakiem wskaźnikowym *, uważam, że jest on bardzo mylący w tym, jak jest używany zarówno w deklaracjach, jak i ... jest różnie interpretowany w deklaracjach i wyrażeniach? Jeśli tak, to jak interpretuje się to inaczej? Gdzie mam pójść źle?

C++ Access derived class member from base class pointer

Jeśli przydzielę obiekt klasy Derived (z klasą bazową Base) i zapiszę wskaźnik do tego obiektu w zmiennej, która wskazuje na ... ved_int; }; Base* basepointer = new Derived(); basepointer-> //Access derived_int here, is it possible? If so, then how?

Wskaźniki jako argumenty funkcji w C

Gdybym miał ten kod, na przykład: int num = 5; int *ptr = # Jaka jest różnica między następującymi dwoma funkcjam ... ść i zrozumienie ta pierwsza jest lepszą opcją (wskaźnik 2-gwiazdkowy), ale z logicznego punktu widzenia, jaka jest różnica?

Najlepsze praktyki w celu uniknięcia problemów ze wskaźnikami [duplikat]

To pytanie ma już odpowiedź tutaj: Jakie są bariery w zrozumieniu wskaźników i co można zrobić, aby je p ... oszących się do wskaźników? Co się dzieje, gdy programiści tworzą błędy wskaźników? Praktyczne przykłady z kodem są lepsze.

Post-increment na dereferenced pointer?

Próbując zrozumieć zachowanie wskaźników w C, byłem trochę zaskoczony poniższym (przykładowy kod poniżej): #include <std ... ar_ptr++ twierdzenie w drugiej funkcji (add_one_v2), ponieważ wyraźnie nie jest to to samo co *our_var_ptr = *our_var_ptr +1?

Co to jest "gruby wskaźnik"?

Już w kilku kontekstach czytałem termin "fat pointer", ale nie jestem pewien, co dokładnie oznacza i kiedy jest używany w Rus ... a razy większy niż normalny wskaźnik, ale nie rozumiem dlaczego. Wydaje się również, że ma to coś wspólnego z obiektami cech.

Czy dobrym pomysłem jest wpisywanie wskaźników?

Przejrzałem jakiś kod i zauważyłem, że konwencja polega na obracaniu typów wskaźników, takich jak SomeStruct* Do typedef SomeStruct* pSomeStruct; Czy jest w tym jakaś zasługa?

Zwracanie wskaźnika do elementu wektorowego w c++

Mam wektor myObjects w zasięgu globalnym. Mam metodę, która używa std::vector<myObject>::const_iterator, aby przemierzy ... adres, na który iterator wskazuje? Czy muszę wrzucić const_iterator z powrotem do myObject, a następnie zwrócić adres tego?