J’essaie d’appeler sys_readlink(const char __user *path, char __user *buf, int bufsiz) directement, mais obtenez le code d’erreur EFAULT. Cette erreur apparaît car buf pointe vers la mémoire depuis l’espace kernel. Alors, est-il possible d’allouer de la mémoire de l’espace utilisateur à partir du kernel? kmalloc(size, GFP_USER) est similaire à kmalloc(size, GFP_KERNEL) et renvoie un pointeur […]
Je retourne à C pour quelque chose, mais j’ai du mal à me souvenir du fonctionnement de cette gestion de la mémoire. J’aimerais avoir un pointeur sur un tableau de pointeurs sur des structures. Dis que j’ai: struct Test { int data; }; Puis le tableau: struct Test **array1; Est-ce correct? Mon problème travaille avec […]
J’écris un programme C multithread et j’ai une erreur. J’ai un tableau de array worker_table 2D array worker_table déclaré globalement comme: int **worker_table; Et alloué en principal comme suit: worker_table = (int**) calloc(number_of_workers*2,(sizeof(int))); C’est la fonction worker: void *Worker(void *worker_id) { my_id = (int)worker_id; //id of the worker printf(“Line 231\n”); printf(“My id is %d\n”,my_id); my_customer […]
S’il vous plaît ne fermez pas cette en disant une question en double . J’ai apporté un changement important afin de ne pas dérouter les gens, j’ai soumis à nouveau ces codes beaucoup plus clairs. S’il vous plaît, aidez-moi à résoudre ce problème d’allocation de mémoire. Je travaille sur une table de hachage et voici […]
Je dois déterminer quelle partie d’un programme Linux que j’exécute utilise combien de mémoire (en pourcentage ou absolue). Je dois créer un profil de plusieurs de ces programmes afin d’identifier les plus gros consommateurs de mémoire de mon code et de voir si je peux les optimiser pour en utiliser moins. J’en ai besoin sur […]
Je dois atsortingbuer de la mémoire à un tableau 3D à l’aide d’un sortingple pointeur. #include int main() { int m=10,n=20,p=30; char ***z; z = (char***) malloc(sizeof(char**)*m*n*p); return 0; } Est-ce que c’est correct de faire ça? (Je pense que ce que je fais est incorrect.)
On dirait que même après avoir libéré toute la mémoire d’un processus Linux alloué par malloc (), la mémoire est toujours réservée au processus et n’est pas renvoyée au système d’exploitation. L’exécution de l’outil Valgrind Massif par défaut ne révèle aucune fuite. Exécuter valgrind avec –pages-as-heap = yes révèle ceci: -> 13,77% (7 655 424 […]
Doublons possibles: Malloc un tableau sortingdimensionnel en C? allocation / désallocation dynamic de tableaux 2D et 3D Comment puis-je allouer des tableaux 3D à l’aide de malloc?
Question simple sur la fonction realloc dans C: Si j’utilise realloc pour réduire le bloc de mémoire pointé par un pointeur, la mémoire “supplémentaire” est-elle libérée? Ou faut-il le libérer manuellement? Par exemple, si je le fais int *myPointer = malloc(100*sizeof(int)); myPointer = realloc(myPointer,50*sizeof(int)); free(myPointer); Vais-je avoir une fuite de mémoire?
Je dois stocker une valeur entière supérieure à la valeur maximale pour le type de données long. Comment pourrais-je stocker et manipuler cette valeur en mémoire? Veuillez l’illustrer par un exemple, si possible.