J'ai besoin d'aide avec une déclaration en classe d'un pointeur. Je cherche un moyen d'utiliser un tableau de style c (donc malheureusement pas de vecteurs) bien que j'utilise C++. Je n'arrive pas à ne pas avoir d'erreurs dans l'exécution telles que "erreur de segmentation: 11" ou "erreur de bus: 10". Le but est d'avoir un moyen de contenir 10 références à des personnes dans une classe.Déclaration d'un tableau privé accédé par un pointeur dans une allocation de classe et de mémoire
Ces pointeurs sont déclarés dans le fichier .h de cette façon:
private:
string * name;
string * surname;
int * index1;
int * index2;
et dans le cteur dans le fichier .cc Je l'ai utilisé différentes façons d'allouer de la mémoire, tels que:
string * name = new string[10];
string * surname = new string[10];
int * index1 = new int[10];
int * index2 = new int[10];
mais j'ai des erreurs d'exécution, peut-être parce qu'il n'accède en réalité pas aux variables privées ou qu'il excède la mémoire ("erreur de segmentation"). Si je n'écris pas les lignes ci-dessus, la sortie est "erreur de bus" pendant l'exécution. Je ne reçois pas d'erreurs dans la compilation, seulement pendant l'exécution. Je ne peux pas changer les types de variables privées dans le fichier .h et cela ne me permet pas d'utiliser new dans la classe car ce serait une extension de C++ 11.
Toute aide serait très apprécié
Ce sont des variables locales et se cachent vos membres d'instance d'objet. Les types ('string *', etc ..) ne devraient pas être présents dans le c-tor (et sans doute vous devriez utiliser 'std :: vector <>' s en premier lieu). – WhozCraig
Dans votre ctor la décalration devrait être comme 'name = new string [10]' et donc .. – sjsam
Merci pour vos réponses rapides, mais j'ai aussi essayé de cette façon et il renvoie une erreur d'exécution – Lorenzo