在char数组中查找char会给出分段错误

时间:2013-11-10 07:26:57

标签: c

我在struct中有一个char数组。

myStruct->string;

我实际上可以打印myStruct->string,一切都在那里,内存也正确分配。

问题是,当我试图找到'\n'时,我正在尝试计算新线数。这是代码:

while(myStruct->string)
{
    if(strchr('\n', myStruct->string))
        myStruct->numbLines++;

    myStruct->string++;

}

我认为if语句是问题。

1 个答案:

答案 0 :(得分:0)

你在这里使用strchr()对我来说并没有多大意义。我建议如下:

char* ptr = mystruct->string;//make a copy of the pointer so that the original is not changed
while(ptr)
{
    if( (*ptr) == '\n' )
        myStruct-->numbLines++;
    ptr++;    
}