Articles of puntatori

allocare la matrice in C

voglio allocare una matrice. è questa l’unica opzione: int** mat = (int**)malloc(rows * sizeof(int*)) for (int index=0;index<row;++index) { mat[index] = (int*)malloc(col * sizeof(int)); }

sizeof (int) == sizeof (void *)?

Esiste un tipo intero con le stesse dimensioni del puntatore? Garantito su tutte le microarchitetture?

Differenza tra * (Puntatore + Indice) e Puntatore

int* myPointer = new int[100]; // … int firstValue = *(myPointer + 0); int secondValue = myPointer[1]; C’è qualche differenza funzionale tra *(myPointer + index) e myPointer[index] ? Quale è considerata una pratica migliore?

Come allocare un array 2D di puntatori in C ++

Sto cercando di far puntare un puntatore a un array 2D di puntatori. Qual è la syntax e come accedo agli elementi?

Dichiarare un puntatore all’array multidimensionale e allocare l’array

Ho provato a guardare ma non ho trovato nulla con una risposta definitiva. So che il mio problema non può essere così difficile. Forse è solo che sono stanco .. Fondamentalmente, voglio dichiarare un puntatore a un array bidimensionale. Voglio farlo in questo modo perché alla fine dovrò ridimensionare l’array. Ho fatto quanto segue con […]

Le assegnazioni di tipo ‘auto’ di un puntatore in c ++ 11 richiedono ‘*’?

Dato che la mia variabile è un puntatore, se lo assegno a una variabile di tipo “auto“, devo specificare “*”? std::vector *getVector(); //returns populated vector //… std::vector *myvector = getVector(); //assume has n items in it auto newvar1 = myvector; // vs: auto *newvar2 = myvector; //goal is to behave like this assignment: std::vector *newvar3 […]

Quando è valido accedere a un puntatore a un object “morto”?

Innanzitutto, per chiarire, non sto parlando di dereferenziamento di indicatori non validi! Considera i seguenti due esempi. Esempio 1 typedef struct { int *p; } T; T a = { malloc(sizeof(int) }; free(ap); // ap is now indeterminate? T b = a; // Access through a non-character type? Esempio 2 void foo(int *p) {} int […]

Differenza tra std :: reference_wrapper e puntatore semplice?

Perché c’è bisogno di avere std::reference_wrapper ? Dove dovrebbe essere usato? In che cosa è diverso da un semplice puntatore? In che modo le sue prestazioni si confrontano con un semplice puntatore?

Il puntatore punteggiato di Dereferencing interromperà le regole di aliasing severo

Ho usato il seguente pezzo di codice per leggere i dati da file come parte di un programma più grande. double data_read(FILE *stream,int code) { char data[8]; switch(code) { case 0x08: return (unsigned char)fgetc(stream); case 0x09: return (signed char)fgetc(stream); case 0x0b: data[1] = fgetc(stream); data[0] = fgetc(stream); return *(short*)data; case 0x0c: for(int i=3;i>=0;i–) data[i] = […]

Quando usare i puntatori e quando no?

Sono abituato a programmare in Java, dove non devi mai pensare ai puntatori durante la programmazione. Tuttavia, al momento sto scrivendo un programma in C ++. Quando faccio lezioni che hanno membri di altre classi, quando dovrei usare i puntatori e quando non dovrei? Ad esempio, quando vorrei fare questo: class Foo { Bar b; […]