Questions marquées «free»

385
Comment free sait-il combien à libérer?

En programmation C, vous pouvez passer n'importe quel type de pointeur que vous aimez comme argument à libérer, comment connaît-il la taille de la mémoire allouée à libérer? Chaque fois que je passe un pointeur vers une fonction, je dois également passer la taille (c'est-à-dire qu'un tableau de 10...

276
Comment fonctionnent malloc () et free ()?

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...

112
Free (ptr) où ptr est NULL est-il corrompu?

Théoriquement, je peux dire que free(ptr); free(ptr); est une corruption de mémoire puisque nous libérons la mémoire qui a déjà été libérée. Mais si free(ptr); ptr=NULL; free(ptr); Comme le système d'exploitation se comportera d'une manière indéfinie, je ne peux pas obtenir une analyse théorique...

92
Comment détecter une erreur «double libre ou corruption»

Lorsque j'exécute mon programme (C ++), il se bloque avec cette erreur. * glibc détecté * ./load: double libre ou corruption (! prev): 0x0000000000c6ed50 *** Comment puis-je retrouver l'erreur? J'ai essayé d'utiliser les std::coutinstructions print ( ), sans succès. Pourrait gdbrendre cela plus...

91
coût d'opération atomique

Quel est le coût de l'opération atomique (n'importe laquelle des opérations de comparaison et d'échange ou d'ajout / décrémentation atomique)? Combien de cycles consomme-t-il? Interrompra-t-il d'autres processeurs sur SMP ou NUMA, ou bloquera-t-il les accès à la mémoire? Videra-t-il le tampon de...