Articles of malloc

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 […]

Perché ricevo un errore di asserzione di malloc C?

Sto implementando un algoritmo polinomiale di divisione e conquista in modo da poterlo confrontare con un’implementazione di OpenCL, ma non riesco a far funzionare malloc . Quando eseguo il programma, assegna un sacco di cose, controlla alcune cose, quindi invia la size/2 all’algoritmo. Poi quando ho colpito di nuovo la linea malloc , sputa questo: […]

Come posso allocare memoria e restituirla (tramite un parametro pointer) alla funzione chiamante?

Ho del codice in un paio di funzioni diverse che assomiglia a questo: void someFunction (int *data) { data = (int *) malloc (sizeof (data)); } void useData (int *data) { printf (“%p”, data); } int main () { int *data = NULL; someFunction (data); useData (data); return 0; } someFunction () e useData () […]

Dichiarazione implicita incompatibile della funzione built-in “malloc”

Sto ottenendo questo errore: avviso: dichiarazione implicita incompatibile della funzione built-in ‘malloc‘ Sto cercando di fare questo: fileinfo_list* tempList = malloc(sizeof(fileinfo_list)); Solo per il riferimento la struttura utilizzata è: typedef struct { fileinfo** filedata; size_t nFiles; size_t size; size_t fileblock; } fileinfo_list; Non vedo nulla di sbagliato in ciò che ho fatto. Sto solo creando […]

Come trovare la causa di un errore “doppio libero” di malloc?

Sto programmando un’applicazione in Objective-C e sto ricevendo questo errore: MyApp (2121,0xb0185000) malloc: *** errore per l’object 0x1068310: double free *** imposta un breakpoint in malloc_error_break per eseguire il debug Sta accadendo quando rilascio un NSAutoreleasePool e non riesco a capire quale object sto rilasciando due volte. Come imposto il suo punto di interruzione? C’è […]