所以我应该根据评论中的要求编辑一堆代码。我已经掌握了大部分内容,但有一部分让我陷入困境。它像原始一样循环,但我无法弄清楚循环的条件应该是什么,而且我放的东西最终会崩溃。我认为这是sizeof的东西?但我没有尝试过。任何帮助将不胜感激!
原件:
int main()
{
const string ID_BASE = "56-123-";
// CHANGE STATIC ARRAY INTO DYNAMIC ARRAY.
const int NUM_PRODUCTS = 5;
Product products[NUM_PRODUCTS];
int i;
//cout << "Enter number of toys: ";
//cin >> numProducts;
....Code to fill products...
//ALTER LOOP TO USE ONLY POINTER OPERATIONS
// (NO SUBSCRIPTS).
for (i = 0; i < numProducts; i++)
{
show(products[i]);
}
我的更改:
int main()
{
const string ID_BASE = "56-123-";
// CHANGE STATIC ARRAY INTO DYNAMIC ARRAY.
int numProducts;
Product *products;
int i;
cout << "Enter number of toys: ";
cin >> numProducts;
products = new Product[numProducts];
...Code to fill products...
//ALTER LOOP TO USE ONLY POINTER OPERATIONS
// (NO SUBSCRIPTS).
for (Product *prodP = products; ; *prodP++)
{
show(*prodP);
}
答案 0 :(得分:1)
条件:
prodP !=products+numProducts;
答案 1 :(得分:0)
执行迭代器样式:
{{1}}
答案 2 :(得分:0)
也许我在这里遗漏了一些东西,但修改后的循环何时结束?
for (Product *prodP = products; ; *prodP++)
{
show(*prodP);
}
只有有限元素,我认为你过度运行数组。
使用valgrind配置这些错误/可疑错误。