La fonction malloc effectue une allocation dynamique de mémoire en C et fait partie de la bibliothèque standard. Utilisez cette balise pour les questions sur l'utilisation, le comportement et les implémentations de malloc.
Dans cette question , quelqu'un a suggéré dans un commentaire que je ne jeter le résultat de malloc, à savoir int *sieve = malloc(sizeof(int) * length); plutôt que: int *sieve = (int *) malloc(sizeof(int) * length); Pourquoi en serait-il ainsi?
Quelle est la différence entre faire: ptr = (char **) malloc (MAXELEMS * sizeof(char *)); ou: ptr = (char **) calloc (MAXELEMS, sizeof(char*)); Quand est-ce une bonne idée d'utiliser calloc sur malloc ou vice versa?
C'est quelque chose qui me dérange depuis des lustres maintenant. On nous enseigne tous à l'école (du moins, je l'étais) que vous DEVEZ libérer chaque pointeur qui est alloué. Je suis un peu curieux, cependant, au sujet du coût réel de ne pas libérer de mémoire. Dans certains cas évidents, …
Je vois en C ++ qu'il y a plusieurs façons d'allouer et de libérer des données et je comprends que lorsque vous appelez, mallocvous devez appeler freeet lorsque vous utilisez l' newopérateur, vous devez vous associer deleteet c'est une erreur de mélanger les deux (par exemple, appeler free()quelque chose qui …
alloca()alloue de la mémoire sur la pile plutôt que sur le tas, comme dans le cas de malloc(). Donc, quand je reviens de la routine, la mémoire est libérée. Donc, en fait, cela résout mon problème de libération de mémoire allouée dynamiquement. La libération de la mémoire allouée malloc()est un …
Je veux savoir comment mallocet freetravailler. int main() { unsigned char *p = (unsigned char*)malloc(4*sizeof(unsigned char)); memset(p,0,4); strcpy((char*)p,"abcdabcd"); // **deliberately storing 8bytes** cout << p; free(p); // Obvious Crash, but I need how it works and why crash. cout << p; return 0; } Je serais vraiment reconnaissant si la …
Il est connu que callocc'est différent mallocdu fait qu'il initialise la mémoire allouée. Avec calloc, la mémoire est mise à zéro. Avec malloc, la mémoire n'est pas effacée. Donc, dans le travail quotidien, je considère calloccomme malloc+ memset. Par ailleurs, pour le plaisir, j'ai écrit le code suivant pour une …
Aujourd'hui, j'ai atteint la page 167 de The C Programming Language (deuxième édition Brian W. Kernighan & Dennis M. Ritchie) et j'ai trouvé que l'auteur dit que je dois lancer malloc. Voici la partie du livre: 7.8.5 Gestion du stockage Les fonctions malloc et calloc obtiennent des blocs de mémoire …
Dans mon entreprise, il existe une règle de codage qui dit, après avoir libéré de la mémoire, réinitialiser la variable sur NULL. Par exemple ... void some_func () { int *nPtr; nPtr = malloc (100); free (nPtr); nPtr = NULL; return; } Je pense que, dans des cas comme le …
J'obtiens cette erreur: avertissement: déclaration implicite incompatible de la fonction intégrée 'malloc' J'essaye de faire ceci: fileinfo_list* tempList = malloc(sizeof(fileinfo_list)); Juste pour la référence, la structure utilisée est: typedef struct { fileinfo** filedata; size_t nFiles; size_t size; size_t fileblock; } fileinfo_list; Je ne vois rien de mal à ce que …
Si j'utilise mallocdans mon code: int *x = malloc(sizeof(int)); Je reçois cet avertissement de gcc: new.c:7: warning: implicit declaration of function ‘malloc’ new.c:7: warning: incompatible implicit declaration of built-in function ‘malloc’
Dans un projet, quelqu'un a poussé cette ligne: double (*e)[n+1] = malloc((n+1) * sizeof(*e)); Ce qui crée supposément un tableau bidimensionnel de (n + 1) * (n + 1) doubles. Soi -disant, dis-je, parce que jusqu'à présent, personne à qui j'ai demandé ne pouvait me dire ce que cela faisait …
Je passe en revue le code C ++ de quelqu'un d'autre pour notre projet qui utilise MPI pour le calcul haute performance (10 ^ 5 - 10 ^ 6 cœurs). Le code est destiné à permettre des communications entre (potentiellement) différentes machines sur différentes architectures. Il a écrit un commentaire …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.