【发布时间】:2016-03-15 21:02:32
【问题描述】:
当我添加 for 循环时,我得到分段错误。此外,当我在 while 循环条件中添加 buffer[i] !='\0' 时,会出现分段错误错误。我很难理解为什么会弹出这个错误。谢谢。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char buffer[2000] = "-rw-r--r-- 1 ftp ftp 614400 Oct 18 2006\r\n"
char String[2000];
int i, j, k= 0;
int nextline= 0;
for(k = 0; k<strlen(buffer);k++)
{
while((buffer[i] != '\r' && buffer[i+1] != '\n'))
{
String[j] = buffer[i];
i++;
j++;
}
}
printf("%s", String);
}
【问题讨论】:
-
在使用
i和j之前,您似乎没有在任何地方初始化它们。 -
Joachim 是对的,"int i, j, k = 0" 仅将 k 初始化为零。
-
缓冲区初始化后没有分号。
-
我不知道在那种情况下String是否是关键字。
-
正如 Joachim 所指出的,
i和j未初始化,您的while是一个无限循环(buffer中没有\r和\n)。
标签: c string parsing memory fault