Reputation: 671
I'm having an issue of getting garbage out of my array after I pass it to a function. Is this the correct way to pass it to a function that will just print it out?
while(infile){
infile >> batch;
infile >> amount;
cout << batch << " " << amount<< endl;
totalChocolates[batch-1]+=amount;
chocolateBatches[batch-1]++;
}
//header();
print(totalChocolates,chocolateBatches);
system("pause");
return 0;
void print(int *total,int *batch)
{
for(int i = 0;i<size;i++)
{
cout << i+1 << " " << batch[i] << " " << total[i] << endl;
}
}
OK I pulled out the function and i'm still getting garbage.
while(infile>> batch >> amount){
//infile >> batch;
//infile >> amount;
cout << batch << " " << amount<< endl;
totalChocolates[batch-1]+=amount;
chocolateBatches[batch-1]++;
}
for(int i = 0;i<size;i++)
{
cout << i+1 << " " << chocolateBatches[i] << " " << totalChocolates[i] << endl;
}
It returns
1 64 8 907 18 1133 9 636 3 1134 16 1101 6 313 7 791 7 1130 1 1221 20 332 22 697 6 807 2 36 2 747 16 1219 3 859 18 639 18 312 7 1079 10 1074 5 678 18 59 1 -858993418 -858960818 2 -858993429 -858971910 3 -858993421 -858963346 4 -858993431 -858970692 5 -858993427 -858963901 6 -858993416 -858961011 7 -858993417 -858960812 8 -858993421 -858961874 9 -858993417 -858960079 10 -858993418 -858960161 11 -858993422 -858963562 12 -858993428 -858970812 13 -858993460 -858993460 14 -858993427 -858967859 15 -858993422 -858964267 16 -858993418 -858954549 17 -858993423 -858966453 18 -858993423 -858964725 19 -858993460 -858993460 20 -858993433 -858973375 21 -858993419 -858963644 22 -858993426 -858968664 23 -858993456 -858993060 24 -858993460 -858993460 25 -858993455 -858990222 Press any key to continue . . .
Upvotes: 2
Views: 179
Reputation: 9642
Pretty much, yes. The issue is, you are not properly using the size of the array, so you are probably just running into the uninitialized space at the end. Also pass a size into the print
function so you don't run off the end.
EDIT: Although do take heed of Kerrek's warning in your question comments.
Upvotes: 3