Est-il possible de partager une seule instance de «dieu» entre tous ceux qui sont liés à ce code, pour être placés dans un object partagé? god* _god = NULL; extern “C” { int set_log_level(int level) { if(_god == NULL) return -1; _stb->log_level(level); return 0; } int god_init(){ if(_god == NULL){ _god = new god(); //Magic […]
Dans certains concours de programmation, les problèmes ont une limite de mémoire (64 Mo ou 256 Mo). Comment comprendre la mémoire utilisée par mon programme (écrit en C ++) avec les commandes bash? Est-il possible de limiter la mémoire utilisée par le programme? Le programme doit se terminer s’il utilise plus de mémoire que la […]
Premièrement, j’utilise glDebugMessage() au lieu de glGetError() pour déterminer les erreurs. Deuxièmement, j’atsortingbue un stockage de texture 3D comme suit: glTexImage3D(GL_TEXTURE_3D, 0, GL_RGBA32F, 512, 512, 303, 0, GL_RGBA, GL_FLOAT, NULL); Lorsque le coponent de profondeur est égal ou inférieur à 303, mon programme fonctionne exactement comme prévu (j’atsortingbue une couleur dans la texture et je […]
J’ai travaillé sur la création d’un allocateur personnalisé en tant qu’exercice / pratique amusant et j’ai rencontré deux problèmes potentiels avec la création de tableaux. Pour un appel d’atsortingbution typique, j’utiliserai malloc et placement new . Cependant, lorsque je crée un tableau, je ne comprends pas comment procéder. Pour une fois, j’ai remarqué à certains […]
Supposons que j’ai struct s { int* __ressortingct__ p1; double v; }; void foo(int* __ressortingct__ p2, struct s my_s) { /* … */ } Les compilateurs C ++ répertoriés ci-dessous respectent- __ressortingct__ mots-clés __ressortingct__ dans ce cas et supposent que les access à la mémoire via p2 ne peuvent pas affecter les access via p1 […]
J’ai observé que si free( ptr ) est appelé alors que ptr n’est pas un pointeur valide sur la mémoire allouée par le système, une violation d’access se produit. Disons que j’appelle free comme ceci: LPVOID ptr = (LPVOID)0x12345678; free( ptr ); Cela provoquera très certainement une violation d’access. Existe-t-il un moyen de vérifier que […]
Le code C ++ suivant est-il une fuite de mémoire? list.push_back(new Ssortingng(“hi”)); Si je comprends bien, push_back à partir de n’importe quelle collection / conteneur std en fait toujours une copie. Donc, si la nouvelle chaîne est copiée, rien ne pourra jamais supprimer la nouvelle chaîne, n’est-ce pas? puisqu’il n’y a aucune référence à cela […]
J’ai entendu des choses contradictoires concernant le sens exact de l’allocation dynamic, et d’ailleurs automatique, de la mémoire. J’ai entendu la stack être appelée à la fois allocation de mémoire automatique et allocation de mémoire dynamic. Je peux voir les deux que la taille de bloc de la mémoire de stack est déterminée avant l’exécution […]
Je suis vraiment confus maintenant sur comment et quelle méthode utiliser pour retourner un object à partir d’une fonction. Je veux des commentaires sur les solutions pour les exigences données. Scénario A: l’object renvoyé doit être stocké dans une variable qu’il n’est pas nécessaire de modifier pendant sa durée de vie. Ainsi, const Foo SomeClass::GetFoo() […]
Je souhaite utiliser le drapeau -fsanitize=memory dans Clang pour parsingr un programme comme celui-ci: #include #include #include using namespace std; void writeToFile(){ ofstream o; o.open(“dum”); o<<"test"<<endl; //The error is here. //It does not matter if the file is opened this way, //or with o("dum"); o.close(); } int main(){ writeToFile(); } Autant que je sache, ce […]