Articles of malloc

schéma d’allocation de mémoire malloc en C

J’essayais avec malloc en C et j’ai observé que malloc perd de la place après avoir alloué de la mémoire. Ci-dessous le morceau de code que j’ai utilisé pour tester Malloc #include #include int main(){ char* a; char* b; a=malloc(2*sizeof(char)); b=malloc(2*sizeof(char)); memset(a,9,2); memset(b,9,2); return 0; } Dans le milieu droit de l’image suivante (ouvrez l’image […]

Utilisation de malloc en C pour allouer de l’espace à un type typedef’d

Je ne sais pas exactement ce que je dois utiliser comme argument avec malloc pour allouer de l’espace dans la fonction table_allocate (int). Je pensais juste à count_table * cTable = malloc (sizeof (count_table *)), mais cela ne fait rien avec le paramètre size. Suis-je censé allouer de l’espace pour le list_node_t également? Ci-dessous est […]

Affectation de mémoire pour un tableau 2D contigu

J’essaie de créer une fonction générique qui, lorsqu’elle est appelée, alloue une mémoire contiguë à un tableau dimensionnel. L’objective est de réaliser quelque chose comme ci-dessous donc pour y parvenir – l’équation que j’utilise est Type **pArray; int total_elements = ((rows * cols) + rows); pArray = (Type **) malloc(total_elements * sizeof(Type)); Je suis également […]

Une bibliothèque de type stdlib sur un environnement nu? (gestion de la mémoire et, espérons-le, du support pthread)

Existe-t-il une bibliothèque de type stdlib pour la programmation bare metal? J’essaye de construire un programme (supposé être construit sur linux) pour un environnement nu-metal. Le programme dépend de stdlib et de posix lib (malloc, calloc, realloc, free et pthread). Je vais le modifier pour un seul thread de toute façon. Je lisais https://www.ibm.com/developerworks/aix/tutorials/au-memorymanager/ et […]

L’initialisation de la structure ne fonctionne pas avec malloc

J’ai une petite expérience en C que j’essaie de comprendre et j’ai rencontré quelque chose que je ne peux pas expliquer. Disons que j’ai la structure suivante: struct World { Things* things; }; et les fonctions suivantes: void initWorld(World *world); void addThingToWorld(World *world, Thing *thing); Maintenant, selon l’implémentation d’ initWorld et la manière dont je […]

Allocation de mémoire pour une structure en C

Je suis chargé de créer un programme qui alloue dynamicment de la mémoire pour une structure. normalement nous utiliserions x=malloc(sizeof(int)*y); Cependant, que dois-je utiliser pour une variable de structure? Je ne pense pas que ce soit possible struct st x = malloc(sizeof(struct)); Est-ce que quelqu’un peut me donner un coup de main? Merci!

Une bonne pratique pour libérer les malloc à la fin du programme?

J’ai un programme simple qui lit un tas de parameters de fichier ini dans la mémoire allouée dynamicment (malloc), puis fait des choses dans les boucles pendant une longue période, puis se termine. Quand je lance valgrind, je constate que la mémoire à laquelle j’ai mallocé pour mes chaînes ini n’est pas libérée. D’une part, […]

Confusion avec Malloc

J’essaie de comprendre un morceau de code C qui est comme suit: #define DIM2( basetype, name, w1 ) basetype (*name)[w1] int mx = 10; //number of rows per processor int my = 100; //number of cols DIM2 (double, f, my); f = (typeof (f)) malloc (2 * mx * sizeof (*f)); Si je ne me […]

Puis-je vérifier si une partie de la mémoire (allouée à l’aide de malloc) rest dans le cache?

Supposons que j’alloue de l’espace en utilisant malloc. Puis-je vérifier si cette mémoire continue rest dans le cache de la CPU (ou même mieux dans quels niveaux de cache L1, L2, L3, etc.) au moment de l’exécution?

C – Concevez votre propre fonction free ()

Aujourd’hui, je suis apparu pour une interview et l’intervieweur m’a demandé ceci, Dites-moi les étapes à suivre pour concevoir votre propre fonction free( ) pour free( ) la mémoire allouée. Comment peut-il être plus efficace que la fonction free() par défaut de C? Que pouvez-vous conclure? J’étais confus, je ne pouvais pas penser à la […]