Articles of malloc

Perché ricevo un avviso ogni volta che utilizzo malloc?

Se uso malloc nel mio codice: int *x = malloc(sizeof(int)); Ricevo questo avviso da gcc : new.c:7: warning: implicit declaration of function ‘malloc’ new.c:7: warning: incompatible implicit declaration of built-in function ‘malloc’

C: Liberare correttamente la memoria di un array multidimensionale

Supponiamo che tu abbia il seguente codice ANSI C che inizializza un array multidimensionale: int main() { int i, m = 5, n = 20; int **a = malloc(m * sizeof(int *)); //Initialize the arrays for (i = 0; i < m; i++) { a[i]=malloc(n * sizeof(int)); } //…do something with arrays //How do I […]

Come posso ottenere la dimensione di un blocco di memoria allocato usando malloc ()?

Possibili duplicati: Come posso ottenere la dimensione di un array da un puntatore in C? C’è un modo per determinare la dimensione di un array C ++ a livello di programmazione? E se no, perché? Ottengo un puntatore a un blocco di memoria allocata da una funzione in stile C. Ora, sarebbe davvero interessante per […]

Come ottenere la lunghezza del blocco di memoria dopo malloc?

Ho pensato che non potevo recuperare la lunghezza di un blocco di memoria assegnato come la semplice funzione di .length in Java. Tuttavia, ora so che quando malloc() assegna il blocco, assegna byte extra per contenere un intero contenente la dimensione del blocco. Questo numero intero si trova all’inizio del blocco; l’indirizzo effettivamente restituito al […]

La complessità temporale dell’allocazione della memoria

Qual è la complessità temporale dell’assegnazione dynamic della memoria usando new, malloc, ecc.? So molto poco su come vengono implementati gli allocatori di memoria, ma presumo che la risposta sia che dipende dall’implementazione. Pertanto, si prega di rispondere per alcuni dei casi più comuni / implementazioni. Modifica: Ricordo vagamente di aver sentito che l’allocazione dell’heap […]

Malloc crea pigramente le pagine di supporto per un’allocazione su Linux (e altre piattaforms)?

Su Linux se dovessi usare malloc(1024 * 1024 * 1024) , cosa fa effettivamente malloc? Sono sicuro che assegna un indirizzo virtuale all’allocazione (camminando nella lista libera e creando una nuova mapping, se necessario), ma in realtà crea 1 GB di pagine di scambio? O mprotect l’intervallo di indirizzi e creerà le pagine quando effettivamente […]

Che cos’è un ammasso di memoria?

Cos’è un heap di memoria?

Scrivere al puntatore fuori limite dopo che malloc () non causa errori

quando provo il codice qui sotto funziona bene. Mi sto perdendo qualcosa? main() { int *p; p=malloc(sizeof(int)); printf(“size of p=%d\n”,sizeof(p)); p[500]=999999; printf(“p[0]=%d”,p[500]); return 0; } Ho provato con malloc (0 * sizeof (int)) o altro ma funziona bene. Il programma si blocca solo quando non uso affatto malloc. Quindi, anche se alloco 0 memoria per […]

Qual è la differenza tra un VLA e l’allocazione dynamic della memoria tramite malloc?

Ero curioso di questo: Qual è la differenza tra: const int MAX_BUF = 1000; char* Buffer = malloc(MAX_BUF); e: char Buffer[MAX_BUF];

sprintf () con allocazione automatica della memoria?

Sto cercando un’implementazione sprintf () simile a una funzione che assegna automaticamente la memoria richiesta. Quindi voglio dire char* my_str = dynamic_sprintf( “Hello %s, this is a %.*s nice %05d string”, a, b, c, d ); e my_str recupera l’indirizzo di una memoria allocata che contiene il risultato di questo sprintf (). In un altro […]