Salut, j'ai un objet tableau dans mon fichier d'en-tête.Erreur de segment de segment C++
private:
Customer** customerListArray;
Puis dans mon dossier du RPC je régler la taille du tableau et ajouter des objets comme suit,
void AppManager::createArrays(vector<vector<string> > data) {
customerListArray = new Customer* [data.size()];
for (unsigned int i = 0; i < data.size(); i++){
try {
Customer* cust = createCustomerObject(data[i]);
customerListArray[i] = cust;
}
catch(string err) {
cout << "Error processing line '" << i << "' of data file. Error Message : " << err << "\n";
}
}
}
Taille du vecteur de données est d'environ 14 000 articles. Cependant, quand je boucle à travers customerListArray et éléments d'impression que je reçois l'erreur suivante,
C5545 - Burton G. Craft - 3/1/14
C5546 - Zena F. Wallace - 10/2/14
C5547 - Ursa P. Orr - 20/4/14
C5548 - Adara X. Rogers - 3/6/13
C5549 - Carter L. Newman - 15/1/14
C5550 - Maxwell V. Watkins - 5/6/13
C5551 - Ria V. Morrow - 8/12/12
C5552 - Kirk Z. Hines - 27/4/14
C5553 - Brent L. Bentley - 13/10/13
C5554 - Thane W. Cobb - 8/8/14
C5555 - Serina M. Macias - 13/8/13
C5556 - Maryam J. Lynch - 1/6/13
C5557 - Breanna M. Lewis - 20/10/13
Segmentation fault
Il se bloque toujours à l'article C5557 avec une erreur de segmentation. Quand j'utilise un vecteur, tout fonctionne bien. mais mon exigence est d'utiliser un tableau par l'affectation.
S'il vous plaît aviser :)
Merci.
Edit:
vector<vector<string> > data= fileReader(customerFile);
data= customerVals.size(); //about 14000 records
//debug priting
for (unsigned int i = 0; i < numOfCustomers; i++) {
Customer* cust = customerListArray[i];
cout << cust->getCustomerId() << " - " << cust->getName() << " - " << cust->getDateLastPurchased()->getDay() << "/" << cust->getDateLastPurchased()->getMonth() << "/" << cust->getDateLastPurchased()->getYear() << "\n";
}
Qu'est-ce que 'data.size()', et qu'est-ce que 'i' quand le programme plante? Ajouter quelques impressions. – kevintodisco
Probablement besoin d'afficher la boucle que vous utilisez pour l'impression - après tout c'est l'endroit où l'accident se produit. – DrC
Est-ce que vous vérifiez 'NULL' avant d'imprimer? –