Ich habe eine for-Schleife, die durch eine Array-Liste von Tagen zykliert und speichert ein int in Variable num, wenn ich die ersten 7 Tage durchlaufen, stürzt mein Programm ab, ich möchte es neu starten am Tag 1 und Wechsel zu Affe '1' ... aber nach der ersten Schleife stürzt es ab.für die Schleife Absturz ... segFault C++
Was mache ich falsch?
C++
//*********************************************************************************************
// function prototype
//*********************************************************************************************
void collectFood(string days[]);
int main(){
//array to hold week days
string days[7] = {"Mon", "Tue", "Wen", "Thur", "Fri", "Sat", "Sun"};
collectFood(days);
}
//*********************************************************************************************
// function to collect foods amounts
//*********************************************************************************************
void collectFood(string days[]){
int num = 0;
// for loop for each monkey
for (int monkey=0; monkey < 3; monkey++){
// for loop to take 7 days worth of food per monkey
for (int day=0; day < sizeof(days); day++){
cout << "Enter the pounds of food eaten by monkey " << monkey
<< " on " << days[day] << ": ";
cin >> num ;
}
}
}
'sizeof (Tage);' Ich bin ziemlich zuversichtlich, dass das nicht bedeutet, was Sie denken, dass es tut. Auf einer 64-Bit-Plattform wird das ** 8 ** sein; nicht 7 (und auf einer 32-Bit-Plattform wird es nur 4 sein). Sie verwenden die Größe eines * Zeigers *, nicht die Größe Ihres Arrays. – WhozCraig
Lassen Sie einfach die '7' in der Deklaration von Tagen weg, später statt 'sizeof (Tage) 'benutzen Sie' days-> length() '. –