Articles of puntatori di

In C ++ non riesco a cogliere puntatori e classi

Sono appena uscito dal college e ho lavorato in C ++ per qualche tempo. Capisco tutte le nozioni di base del C ++ e le uso, ma ho difficoltà a cogliere argomenti più avanzati come puntatori e classi. Ho letto alcuni libri e tutorial e capisco gli esempi in essi, ma poi quando guardo alcuni […]

Perché alcune persone preferiscono “T const &” over “const T &”?

Quindi, mi rendo conto che const T& e T const& sono identici e significano entrambi un riferimento a un const T. In entrambi i casi, il riferimento è anche costante (i riferimenti non possono essere riassegnati, a differenza dei puntatori). Ho osservato, nella mia esperienza un po ‘limitata, che la maggior parte dei programmatori C […]

C ++ Access derivato membro della class dal puntatore della class base

Se alloco un object di una class Derived (con una class base di Base ) e memorizzo un puntatore a quell’object in una variabile che punta alla class base, come posso accedere ai membri della class Derived ? Ecco un esempio: class Base { public: int base_int; }; class Derived : public Base { public: […]

Stringhe C ++: vs. *

State pensando, qual è la differenza tra dichiarare una variabile con [] o *? Come la vedo: char *str = new char[100]; char str2[] = “Hi world!”; .. dovrebbe essere la differenza principale, anche se sono incerto se si può fare qualcosa di simile char *str = “Hi all”; .. poiché il puntatore dovrebbe fare […]

Espressioni di puntatore: ** ptr ++, * ++ * ptr e ++ ** ptr use

Sto provando le mie mani su una letteratura puntatore C. In una delle illustrazioni, ho incontrato il seguente codice. # include int main() { static int a[]={0,1,2,3,4}; static int *p[]={a, a+1, a+2, a+3, a+4}; int **ptr; ptr =p; **ptr++; printf(“%d %d %d\n”, ptr-p, *ptr-a, **ptr); *++*ptr; printf(“%d %d %d\n”, ptr-p, *ptr-a, **ptr); ++**ptr; printf(“%d %d […]

C non è così difficile: void (* (* f ) ()) ()

Ho appena visto una foto oggi e penso che apprezzerei le spiegazioni. Quindi ecco la foto: Ho trovato questo confuso e mi chiedevo se tali codici siano mai pratici. Ho cercato su Google la foto e ho trovato un’altra immagine in questa voce di reddit, ed ecco l’immagine: Quindi questa “lettura a spirale” è qualcosa […]

Chiamare un metodo con un ricevitore puntatore da un object invece di un puntatore ad esso?

v è un object di Vertex e Scale è un metodo per un puntatore a Vertex . Allora perché v.Scale(10) non è sbagliato, dato che v non è un puntatore a un object Vertex ? Grazie. package main import ( “fmt” “math” ) type Vertex struct { X, Y float64 } func (v Vertex) Abs() […]

ptr-> ciao (); / * VERSUS * / (* ptr) .hello ();

Stavo imparando i puntatori del C ++ e l’operatore -> mi sembrava strano. Invece di ptr->hello(); si potrebbe scrivere (*ptr).hello(); perché sembra funzionare, quindi ho pensato che il primo fosse solo un modo più conveniente. È così o c’è qualche differenza?

Passando argomento puntatore per riferimento sotto C?

#include #include void getstr(char *&retstr) { char *tmp = (char *)malloc(25); strcpy(tmp, “hello,world”); retstr = tmp; } int main(void) { char *retstr; getstr(retstr); printf(“%s\n”, retstr); return 0; } gcc non compilerebbe questo file, ma dopo aver aggiunto #include potrei usare g ++ per compilare questo file sorgente. Il problema è: il linguaggio di programmazione C […]

Ottenere la dimensione di un malloc solo con il puntatore restituito

Voglio essere in grado di variare le dimensioni del mio array così ne creo uno in questo modo: int* array; array = malloc(sizeof(int)*10);//10 integer elements Posso usare questo come un array come faresti normalmente, tuttavia quando provo a trovarne la dimensione in questo modo: size = sizeof(array)/sizeof(int); Ottengo la risposta 1 perché non lo riconosce […]