确定数组分配的长度

时间:2014-02-09 00:36:46

标签: c++ arrays dynamic access-violation unhandled-exception

这是我很困惑的代码片段。我正在检查传入的字符串有多长。
我添加*以获得一个标记值来停止while循环。
然而,我一直得到一个包含*的长度值,我不明白为什么,因为带有嵌套的while循环if应该在{{1}之前停止}。

有人可以指出我做错了什么以及为什么我遇到这个问题?

*

2 个答案:

答案 0 :(得分:2)

你第一次通过循环时自然会获得+1,因为你没有初始化变量“item”。同时使它成为while而不是while循环。

试试这个:

do
{

    // This line moves out of the if statement
    item = romanIn[length];

    if(item != "*")
    {
        length++;
    }
    cout<<item;
}while(item!="*")

答案 1 :(得分:1)

项目的初始值是什么?

我们假设它是0.你进入循环 item == 0!= marker,所以你输入if,然后你说

item = romanIn [0],length ++

如果romanIn [0] ==“*”你将退出循环,但你的长度现在说1包括标记