Articles of malloc

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)); }

Perché, o quando, hai bisogno di allocare dynamicmente la memoria in C?

L’allocazione dynamic della memoria è un argomento molto importante nella programmazione in C. Tuttavia, non sono stato in grado di trovare una buona spiegazione di ciò che questo ci permette di fare, o perché è necessario. Non possiamo semplicemente dichiarare variabili e strutture e non usare mai malloc ()? Come nota a margine, qual è […]

conversione non valida da `void * ‘a` char *’ quando si usa malloc?

Ho problemi con il codice qui sotto con l’errore sulla linea 5: errore: conversione non valida da void* a char* Sto usando g ++ con i codeblocks e ho provato a compilare questo file come un file cpp. Importa? #include int main() { char *foo = malloc(1); if (!foo) { printf(“malloc()”); exit(1); } OPENSSL_cleanse(foo, 1); […]

malloc () vs. HeapAlloc ()

Qual è la differenza tra malloc () e HeapAlloc ()? Per quanto ne so, malloc assegna la memoria dall’heap, proprio come HeapAlloc, giusto? Quindi qual è la differenza? Grazie!

Perché ottengo risultati diversi quando cancello un puntatore dopo averlo liberato?

Ho una domanda sulla gestione della memoria in C (e GCC 4.3.3 su Debian GNU / Linux). Secondo il C Programming Language Book di K & R, (capitolo 7.8.5), quando liberare un puntatore e quindi dereferenziarlo, è un errore. Ma ho qualche dubbio da quando ho notato che a volte, come nella fonte che ho […]

Ottenere la dimensione di un malloc solo con il puntatore restituito

Voglio essere in grado di variare le dimensioni del mio array così ne creo uno in questo modo: int* array; array = malloc(sizeof(int)*10);//10 integer elements Posso usare questo come un array come faresti normalmente, tuttavia quando provo a trovarne la dimensione in questo modo: size = sizeof(array)/sizeof(int); Ottengo la risposta 1 perché non lo riconosce […]

Memoria d’uso problema in C

Aiutatemi 🙂 OS: Linux Dove in “sleep (1000);”, in questo momento “top (mostra le attività di Linux)” mi ha scritto il 7,7% di utilizzo di MEM. valgrind: perdita di memoria non trovata. Ho capito, ho scritto correttamente e tutto il risultato di malloc è NULL. Ma perché in questo momento “dormi” il mio programma NON […]

Come usare realloc in una funzione in C

Basandomi su ciò che ho imparato qui: Manipolazione dell’array dinamico attraverso le funzioni in C. void test(int data[]) { data[0] = 1; } int main(void) { int *data = malloc(4 * sizeof *data); test(data); return 0; } Funziona bene Tuttavia, sto anche provando a usare realloc in una funzione. void increase(int data[]) { data = […]

Segfaults in malloc () e malloc_consolidate ()

La mia applicazione segfaults a volte e principalmente in malloc () e malloc_consolidate () quando guardo il backtrace in gdb. Ho verificato che la macchina ha abbastanza memoria disponibile, non ha nemmeno iniziato lo scambio. Ho controllato ulimits per il segmento dei dati e la dimensione massima della memoria ed entrambi sono impostati su ‘unlimited’. […]

Comportamento di malloc con delete in C ++

int *p=(int * )malloc(sizeof(int)); delete p; Quando allochiamo memoria usando malloc, dovremmo rilasciarlo usando free e quando lo allociamo usando new in C ++ dovremmo rilasciarlo usando delete. Ma se assegniamo memoria usando malloc e poi usiamo delete, allora dovrebbe esserci qualche errore. Ma nel codice precedente non ci sono errori o avvertimenti in arrivo […]