Si j’utilise malloc dans 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 est censé créer un tableau à deux dimensions de (n + 1) * (n + 1) doubles. Soi -disant, dis-je, car jusqu’à présent, personne à qui j’ai posé la question ne pouvait me dire ce que cela faisait, exactement, […]
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 qui dit quelque chose comme: […]
Qu’est-ce qu’un tas de mémoire?
Dans mon entreprise, il existe une règle de codage qui, après avoir libéré de la mémoire, réinitialise la variable à NULL. Par exemple … void some_func () { int *nPtr; nPtr = malloc (100); free (nPtr); nPtr = NULL; return; } Je pense que, dans les cas comme le code montré ci-dessus, la définition de […]
Je reçois cette erreur: avertissement: déclaration implicite incompatible de la fonction intégrée ‘malloc‘ J’essaie de faire ça: fileinfo_list* tempList = malloc(sizeof(fileinfo_list)); Juste pour la référence, la structure utilisée est la suivante: typedef struct { fileinfo** filedata; size_t nFiles; size_t size; size_t fileblock; } fileinfo_list; Je ne vois rien de mal avec ce que j’ai fait. […]
Aujourd’hui, j’ai atteint la page 167 du langage C Programming Language (deuxième édition, Brian W. Kernighan & Dennis M. Ritchie) et j’ai découvert que l’auteur disait que je devais lancer malloc . Voici la partie du livre: 7.8.5 Gestion du stockage Les fonctions malloc et calloc obtiennent des blocs de mémoire dynamicment. void *malloc(size_t n) […]
On sait que calloc est différent de malloc dans le sens où 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 calloc comme malloc + memset . Incidemment, pour le plaisir, j’ai écrit le code […]
Je veux savoir comment malloc et free travail free . 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 réponse […]
alloca() alloue de la mémoire à partir de Stack plutôt que du tas, ce qui est le cas dans malloc() . Donc, quand je reviens de la routine, la mémoire est libérée. Donc, en réalité, cela résout mon problème de libération de la mémoire allouée dynamicment. La libération de la mémoire allouée via malloc() est […]