我看过的每个其他线程都有没有将行初始化为NULL而len为0的问题。这是我的代码的一部分:
$git push origin dev
fatal: remote error:
You can't push to git://github.com//name_of_repo.git
Use https:://github.com//name_of_repo.git
提前致谢。
答案 0 :(得分:1)
您的代码有多个问题,
read < 2
则您的索引小于0
如果pch
为NULL
,则您取消引用NULL
指针
关于strtok()
,
NULL
。strchr()
,strstr()
或strpbrk()
,所有这些都没有strtok()
的限制。注意,我并不是说你不应该使用strtok()
,有合理的情况,这是最好的选择,我只是警告你一些限制并澄清它的预期行为,以便你使用它正确地说,假设它只是因为你“知道”输入而返回了一些东西,这只是一个糟糕的编程习惯。总是检查错误,最好知道程序失败的原因而不是完全困惑。
事实上,说或者认为“你知道输入”是错误的,因为
编写处理单个输入的代码有什么意义?
这不是您的想法,有些字符可能对您很清楚,但编辑可以像'\t'
空格一样呈现' '
标签字符。
你不应该责怪它getline()
,因为已知它能正常工作,所以这不是它的错。
您的程序调用未定义的行为,因此无法确定问题的确切位置,因为它可能会发生在某个地方并且程序会一直持续,直到有人做了触发分段错误的事情。