2010-12-12 3 views
1

Je regardais sur la référence C++ et trouvé la gestion de la mémoire dynamique et regardait la fonction qui réallouer la mémoire et je me demandais si cette fonction pourrait être utilisée pour faire un tableau plus grand, je pense que c'est ce qu'ils veulent dire, mais je ne comprends vraiment pas cette ligneréallocation de mémoire pour un tableau C++

more_numbers = (int*) realloc (numbers, count * sizeof(int)); 

cela apparaît dans l'exemple de référence Cplusplus voici donc ma question en quelques mots

peut realloc() être utilisé pour fabriquer un tableau plus grand? merci :)

+0

Utilisez des vecteurs ou similaire si vous avez besoin de conteneurs redimensionnables. –

Répondre

7

Seulement si la mémoire de la matrice a été allouée via malloc(), calloc(), ou realloc() précédemment. Sinon, vous demandez des ennuis.

+6

Où "demander des ennuis" est une manière polie de dire "Comportement non défini", qui est aussi une façon de dire "Tout peut arriver, votre programme pourrait tomber en panne, il pourrait supprimer le contenu de votre disque dur ou obtenir votre petite amie enceinte " – SingleNegationElimination

+0

@TokenMacGuy gagner. –

0

"La fonction peut déplacer le bloc de mémoire vers un nouvel emplacement, auquel cas le nouvel emplacement est renvoyé". Même s'il préserve les données dans votre bloc, tous les pointeurs vers les objets à l'intérieur de ce bloc peuvent devenir invalides.

Questions connexes