Articles of malloc

Utilizzo di sizeof () sulla memoria di malloc’d

Possibile duplicato: domande newbie su malloc e sizeof Sto cercando di leggere le stringhe in un programma. Quando ho notato che le stringhe erano a volte corrotte, ho provato il seguente codice: void *mallocated = malloc(100); printf(“sizeof(mallocated) = %d\n”, sizeof(mallocated)); Secondo il mio programma, la dimensione di mallocated era 8 , anche se ho assegnato […]

Quanto può essere grande un malloc in C?

Ho un malloc in C che è 26901 ^ 2 * sizeof (doppio) Questo mi ha fatto pensare quale può essere il più grande valore qui? Inoltre, avrei problemi a definire una macro per accedere a questo array 2D? #define DN(i,j) ((int)i * ny + (int)j) Perché questo sembra non funzionare per me – o […]

Perché pubblichiamo il valore di ritorno di malloc?

Qualcuno potrebbe spiegarmi perché alcuni programmatori usano (char *) di fronte al malloc? So che restituisce nulla, ma perché voglio che restituisca solo una memoria di memoria? Mi dispiace, sono solo un principiante nella programmazione. Grazie

implementazione malloc?

Sto cercando di implementare malloc e free per C, e non sono sicuro di come riutilizzare la memoria. Al momento ho una struct simile a questa: typedef struct _mem_dictionary { void *addr; size_t size; int freed; } mem_dictionary; Il mio malloc aspetto: void *malloc(size_t size) { void *return_ptr = sbrk(size); if (dictionary == NULL) dictionary […]

Mallocs di 64 bit

Quali sono le ragioni per cui un malloc () fallirebbe, specialmente a 64 bit? Il mio problema specifico è cercare di mallocare un enorme blocco da 10 GB di RAM su un sistema a 64 bit. La macchina ha 12 GB di RAM e 32 GB di swap. Sì, il malloc è estremo, ma perché […]

Devo liberare memoria prima di uscire?

Devo liberare tutta la memoria del mio mallocated quando sto uscendo dal programma a causa di un errore? something = (char**) malloc (x * sizeof(char*)); for (i = 0; i < x; i++) something[i] = (char*) malloc (y + 1); … if (anything == NULL) { printf("Your input is wrong!"); // should I free memory […]

La liberazione della memoria allocata è necessaria quando si esce da un programma in C

Se ho assegnato memoria nel mio programma C usando malloc e ora voglio uscire, devo liberare la memoria allocata, o posso supporre che da quando il mio intero programma termina, sarà liberato dal sistema operativo? Corro in ambiente Linux.

Heap alloca una matrice 2D (non una matrice di puntatori)

Sto scrivendo il codice C e vorrei ammassare allocare 512 * 256 byte. Per mia comodità mi piacerebbe poter accedere agli elementi con l’array di syntax [a] [b]; nessuna aritmetica per trovare l’indice giusto. Ogni tutorial che vedo online mi dice di creare una serie di puntatori che puntano agli array delle righe che voglio […]

Controlla se un puntatore punta alla memoria allocata nell’heap

Voglio sapere se un puntatore punta a un pezzo di memoria allocato con malloc / new. Mi rendo conto che la risposta per un indirizzo arbitrario è “No you can not”, ma penso che sia ansible ignorare malloc / free e tenere traccia degli intervalli di memoria allocati. Conoscete una libreria di gestione della memoria […]

memoria allocata dynamicmente dopo la fine del programma

Quando viene terminato un programma C / C ++ contenente la memoria allocata dynamicmente (usando malloc / new) senza chiamate gratuite / eliminate, cosa succede a quella memoria allocata dynamicmente? Il sistema operativo recupera la memoria o la memoria diventa inaccessibile ad altri programmi?