Articles of malloc

allineato malloc () in GCC?

Esiste una funzione standardizzata in GCC o glibc per allocare il blocco di memoria sul puntatore allineato? Come _align_malloc () in MSVC?

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

char libero *: dimensione successiva non valida (veloce)

Sto liberando un char * dopo un processo di concatenazione. Ma ricevo questo errore: free (): dimensione successiva non valida (veloce): 0x0000000001b86170 Di seguito è riportato il mio codice: void concat(stringList *list) { char *res = (char*)malloc(sizeof(char*)); strcpy(res, list->head->string); list->tmp = list->head->next; while (list->tmp != NULL) { strcat(res, “,”); strcat(res, list->tmp->string); list->tmp = list->tmp->next; } […]

domande newbie su malloc e sizeof

Qualcuno può spiegarmi perché la mia chiamata a malloc con una stringa di 6 dimensioni restituisce una dimensione di 4 byte? In effetti, qualsiasi argomento intero che do a malloc ottengo una dimensione di 4. Successivamente, sto provando a copiare due stringhe. Perché la mia copia della stringa copiata (NULL) è mia? Di seguito è […]

cosa restituisce malloc (0)?

Cosa restituisce malloc(0) ? La risposta sarebbe la stessa per realloc(malloc(0),0) ? #include #include int main() { printf(“%p\n”, malloc(0)); printf(“%p\n”, realloc(malloc(0), 0)); return 0; } Uscita da linux gcc: manav@manav-workstation:~$ gcc -Wall mal.c manav@manav-workstation:~$ ./a.out 0x9363008 (nil) manav@manav-workstation:~$ L’output continua a cambiare ogni volta per malloc(0) . Questa è una risposta standard? E perché qualcuno […]

Sovrascrivere ‘malloc’ usando il meccanismo LD_PRELOAD

Sto provando a scrivere una semplice libreria condivisa che registri le chiamate di malloc a stderr (una sorta di ‘mtrace’ se lo desideri). Tuttavia, questo non funziona. Ecco cosa faccio: /* mtrace.c */ #include #include static void* (*real_malloc)(size_t); void *malloc(size_t size) { void *p = NULL; fprintf(stderr, “malloc(%d) = “, size); p = real_malloc(size); fprintf(stderr, […]

In che modo malloc () viene implementato internamente?

Qualcuno può spiegare come malloc() lavori internamente? A volte ho fatto un strace program e vedo un sacco di chiamate di sistema sbrk , facendo man sbrk parla del fatto che sia usato in malloc() ma non molto di più.

Come allocare dynamicmente lo spazio di memoria per una stringa e ottenere quella stringa dall’utente?

Voglio leggere l’input dell’utente usando il programma C. Non voglio usare array come, char names[50]; perché se l’utente fornisce una stringa di lunghezza 10, gli spazi rimanenti vengono sprecati. Se uso il puntatore del carattere come, char *names; allora ho bisogno di allocare memoria per quello in questo modo, names = (char *)malloc(20 * sizeof(char)); […]

Crea una funzione wrapper per malloc e libera in C

Ehi, sto cercando di creare funzioni wrapper gratuite e malloc in C per aiutarmi a notificare perdite di memoria. Qualcuno sa come dichiarare queste funzioni così quando chiamo malloc () e free () chiamerà le mie funzioni personalizzate e non le funzioni lib standard?

Differenza tra il tipo di matrice e la matrice allocata con malloc

Oggi stavo aiutando un mio amico con un codice C, e ho trovato un comportamento strano che non riuscivo a spiegargli perché stava accadendo. Avevamo il file TSV con una lista di interi, con un int ogni riga. La prima riga era il numero di righe della lista. Abbiamo anche un file ac con un […]