L'allocation dynamique de mémoire, généralement dans le contexte de langues sans garbage collection ou comptage de référence obligatoire ou automatique, fait référence au processus ou demande au système d'exploitation un bloc de mémoire de taille variable.

dynamic-memory-allocation...

Comment puis-je renvoyer ce tableau à la fonction principale pour une utilisation ultérieure dans mon programme? int* enterMarks(int marks) { int arr[marks]; cout << "Please enter " << marks << "marks (0<=Mark<=100):" << endl; for (int i = 0; i < marks; i++) { cout << i+1 << ">"; cin >> ar....
Je suis un débutant en C et j'essaie d'insérer un nombre à la dernière position de C de telle sorte que la taille du tableau change au fil du temps. Le premier tableau est comme ceci: temp[10] = {1, 2, 0, 0, 5, 6, 0, 8, 0, 0}; Maintenant, comment pouvons-nous insérer ces valeurs dans temp qui sont ....
29 mai 2020 à 13:34
Le programme donné fonctionne pour la chaîne qui est fixée dans le code par exemple char str[100] = "With fixed string this code works" // Output of the program is "fixed string this code works" Mais dès que je prends l'entrée str en utilisant scanf("%s", &str); Il semble qu'une erreur soit trouvé....
Le programme suivant montre un résultat inattendu #include <stdio.h> #include <stdlib.h> int main() { char* num1; num1 = malloc(100*sizeof(char)); num1 = "38462879"; printf("%s\n",num1); num1[0]='5'; printf("%s\n",num1); return 0; } Je m'attends à ce qu'il imprime la ch....
30 mars 2020 à 10:45
test_system.txt UPLOADER_ID X1 Y1 X2 Y2 1 1.00 1.00 END CUSTOMER_ID TIP X1 Y1 X2 Y2 1 3 2.00 1.00 2.00 1.00 2 2 3.00 1.00 3.00 1.00 3 1 4.00 1.00 4.00 1.00 4 1 5.00 1.00 5.00 1.00 5 2 6.00 1.00 6.....
23 mars 2020 à 14:29
Pourquoi ne puis-je pas stocker un grand entier dans ce bloc de mémoire alloué? int *dyn = malloc(16); *dyn = 9999999999; printf("%lli\n", *dyn); free(dyn); Au moment de la compilation, GCC m'avertit qu'un débordement d'entier se produira. Et bien sûr, une fois imprimé, il a débordé. Pourquoi ne ....
18 févr. 2020 à 14:33
Un pointeur char peut se voir attribuer une chaîne arbitraire, mais un pointeur entier ne peut pas se voir affecter un entier. Étant donné que les deux sont des pointeurs et contiennent une adresse. Pourquoi attribuer une chaîne valide mais un entier invalide en C à un pointeur avant l'allocation dy....
12 févr. 2020 à 09:39
Considérons ce code: #include <iostream> class A{ public: ~A() {} }; int main(){ A *p = new A(); p->~A(); return 0; } Je voudrais savoir si la mémoire de l'objet A pointé par p est libérée ou il faut appeler delete p;....
9 févr. 2020 à 23:11
Dans ce code, j'obtiens des nombres à partir d'un fichier, lorsque le premier nombre correspond à la taille du tableau 2D. Dans mon code, je définis char *filename=new char; (Je dois utiliser char * filename, c'est l'exercice ..) Tout fonctionne bien, jusqu'au moment où j'essaye de delete. delete e....
Dans de nombreux exemples, je vois du code comme celui-ci: SomeObject* constructObject() { SomeObject* obj = new SomeObject(); return obj; } Mais qu'est-ce qui ne va pas de cette façon: SomeObject constructObject() { SomeObject obj = SomeObject(); return obj; } ? Quelle est la règl....
20 janv. 2020 à 20:10
Fondamentalement, je comprends les pointeurs. Mais quand il s'agit d'allocation dynamique pour des matrices qui impliquent également des pointeurs, je me perds dans le processus. Je veux savoir comment traduire ce segment de code pour le comprendre. (*a)[i] = (int*)malloc((*m) * sizeof(int)); La fo....
14 janv. 2020 à 23:15
Comment libérer la mémoire qui a été une fois callée au début, puis réallouée et callée juste après? Ce ptr a été ma tentative, mais valgrind dit qu'il y a eu 6 allocs et 6 libérations, mais il y a 90 octets dans 3 blocs définitivement perdus. char *textInFile = (char *) calloc(currentLength + 1, si....
La deuxième affectation donne une erreur (une valeur de type "int" ne peut pas être affectée à une entité de type "int *"), pourquoi la même erreur n'apparaît-elle pas pour la première affectation? #include <bits/stdc++.h> using namespace std; int main() { int* x = new int[100]; x[5] = 3; ....
J'ai besoin de créer une fonction char * read_line (void) qui lit un caractère récursivement, donc à chaque appel récursif, il crée une variable char locale et lorsque enter caractère a été lu, il peut déterminer la quantité de mémoire nécessaire pour être allouée afin il peut éventuellement renvoye....
Quelqu'un peut-il m'expliquer pourquoi mon appel à malloc avec une taille de chaîne de 6 renvoie une taille de 4 octets? En fait, tout argument entier que je donne à malloc, j'obtiens une taille de 4. Ensuite, j'essaie de copier deux chaînes. Pourquoi ma sortie de la chaîne copiée (NULL)? Voici mon ....
3 nov. 2019 à 19:47
Class Example { // ... }; int main() { Example** pointer = new Example*[9]; for(int i = 0; i < 10; i++) { pointer[i] = new Example(); } for(int i = 0; i < 10; i++) { delete pointer[i]; } delete[] pointer; // <--- This is problem pointer = n....
29 oct. 2019 à 19:55
Quand j'alloue de la mémoire pour, disons, des entiers, je le fais de cette façon: int* pointer = new int[10]; La même chose fonctionne également pour les pointeurs d'objet de classe: int dim = 5; Complex* vect = new Complex[dim]; Mais si, disons, j'ai une classe avec un initialiseur explicite com....
Je suis donc tombé sur un extrait de code qui a démontré que si nous voulons une allocation dynamique forcée de n'importe quel objet de classe, nous devrions rendre son destructeur privé . J'ai essayé cela et oui, cela ne permet pas d'instancier un objet sur la pile. Mais quand j'ai instancié une i....
14 oct. 2019 à 17:51
Je voudrais savoir pourquoi les deux premiers éléments sont toujours non nuls. Je ne sais pas comment je peux décrire davantage la question, mais cela ne me permet pas de poster la question, alors j'écris ceci. Je ne sais pas si cela fonctionnera. #include <stdio.h> #include <stdlib.h> #define SIZE....
29 sept. 2019 à 18:07
Créer une fonction int isVowel (char c) créer une fonction int voyelles (char s []) Quelle chaîne du fichier contient le plus de voyelles - dans le cas de la cravate, ne montrer que le 1er @ doit évidemment utiliser les fonctions ci-dessus, c'est ce que j'essaie de faire mais je ne suis pas tout à f....
19 sept. 2019 à 19:11
J'ai écrit deux cours. Dans la classe Basic, j'ai l'attribut age, qui est alloué dynamiquement. J'essaye de l'utiliser en classe Dog. Le code s'exécute mais il me donne une sortie: mammal create dog create how 2 dog delete mammal delete munmap_chunk(): invalid pointer Aborted (core dumped) Que....
30 août 2019 à 20:41
J'ajoute des objets à un vecteur dans une fonction. Le code ressemble à ceci: class MyObj { int a; int b; MyObj( int ai, int bi ) { this->a = ai; this->b = bi; } }; vector<MyObj> myVec; void foo() { MyObj objInst( 10, 20 ); myVec.push_back( objInst ); } Je m'at....
realloc mute-t-il son premier argument? La mutation est-elle le premier argument dépendant de l'implémentation? Y a-t-il une raison pour laquelle cela ne devrait pas être const? Comme contre-exemple memcpy fait son src argument const. La norme ISO C, section 7.20.3 Fonctions de gestion de la mémoire....
Avant de commencer avec ma question, laissez-moi vous dire que je sais que je peux facilement résoudre mon problème en utilisant la bibliothèque standard ou la bibliothèque gsl (par exemple std::Vector). Mais j'essaie d'apprendre le C ++ et l'allocation de mémoire dynamique, alors j'aimerais savoir ....
8 août 2019 à 00:49
Je viens de commencer à apprendre le C ++. Je dois déclarer une méthode qui acceptera des variables comme celle-ci: int grid1[200][200]; int grid2[20][25]; int grid3[53][40]; Comment dois-je déclarer ce paramètre dans la méthode? J'ai trouvé cette déclaration, mais je ne sais pas si elle est utile ....
4 août 2019 à 16:43