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?