Articles of puntatori

Come viene implementata la referenza internamente?

Mi chiedo solo come sia implementato in realtà attraverso diversi compilatori e configurazioni di debug / release. Lo standard fornisce in qualche modo raccomandazioni sulla sua implementazione? Differisce da qualche parte? Ho provato a eseguire un semplice programma in cui sono stati restituiti riferimenti non const e puntatori a variabili locali dalle funzioni, ma ha […]

Qual è il risultato di NULL + int?

Ho visto la seguente macro utilizzata nelle implementazioni VBO OpenGL: #define BUFFER_OFFSET(i) ((char *)NULL + (i)) //… glNormalPointer(GL_FLOAT, 32, BUFFER_OFFSET(x)); Potresti fornire un piccolo dettaglio su come funziona questa macro? Può essere sostituito con una funzione? Più esattamente, qual è il risultato dell’incremento di un puntatore NULL?

Come includere una matrice dynamic INSIDE una struttura in C?

Mi sono guardato attorno ma non sono riuscito a trovare una soluzione a quella che deve essere una domanda ben fatta. Ecco il codice che ho: #include struct my_struct { int n; char s[] }; int main() { struct my_struct ms; ms.s = malloc(sizeof(char*)*50); } ed ecco l’errore che mi dà gcc: errore: uso non […]

Go, X non implementa Y (… metodo ha un ricevitore puntatore)

Ci sono già diverse domande e risposte su questo argomento ” X non implementa Y (… metodo ha un ricevitore puntatore) “, ma per me sembrano parlare di cose diverse e non si applicano al mio caso specifico. Quindi, invece di rendere la domanda molto specifica, la sto rendendo ampia e astratta – Sembra che […]

Modifica di un const tramite un puntatore non const

Sono un po ‘confuso cosa è successo nel seguente codice: const int e = 2; int* w = ( int* ) &e; // (1) cast to remove const-ness *w = 5; // (2) cout << *w << endl; // (3) outputs 5 cout << e << endl; // (4) outputs 2 cout << "w = […]

Puntatore a un indirizzo fisso specifico

Come si assegna un indirizzo di memoria specifico a un puntatore? I registri di funzioni speciali in un microcontrollore come AVR m128 ha indirizzi fissi, l’AVR GCC definisce l’SFR nel file di intestazione io.h, ma io voglio gestirlo personalmente.

Perché il dereferenziamento di un puntatore nullo è un comportamento indefinito?

Secondo ISO C ++, il dereferenziamento di un puntatore nullo è un comportamento non definito. La mia curiosità è, perché? Perché lo standard ha deciso di dichiararlo un comportamento indefinito? Qual è la logica alla base di questa decisione? Dipendenza del compilatore? Non sembra, perché secondo lo standard C99, per quanto ne so, è ben […]

Funzione per allocare dynamicmente la matrice

Voglio creare una funzione per allocare (con malloc / calloc ) una matrice dichiarata come un doppio puntatore. Ho capito come funziona una doppia matrice di puntatori e come allocarla con malloc , ma quando passo la mia matrice (dichiarata in main() e inizializzata su NULL ) il mio programma si blocca. Suppongo che l’errore […]

Verifica se questo è nullo

Ha mai senso verificare se questo è nullo? Diciamo che ho una class con un metodo; all’interno di quel metodo, controllo this == NULL , e se lo è, restituire un codice di errore. Se questo è nullo, significa che l’object è cancellato. Il metodo è anche in grado di restituire qualcosa? Aggiornamento: ho dimenticato […]

Perché posso cambiare una variabile const locale tramite il cast del puntatore, ma non quella globale in C?

Volevo cambiare il valore di una costante usando i puntatori. Considera il seguente codice int main() { const int const_val = 10; int *ptr_to_const = &const_val; printf(“Value of constant is %d”,const_val); *ptr_to_const = 20; printf(“Value of constant is %d”,const_val); return 0; } Come previsto, il valore della costante viene modificato. ma quando ho provato lo […]