代码:http://paste.pocoo.org/show/422081/(链接缺少404)。
好吧,所以我试图不通用大块的内存,并决定我做了顽固的演员阵容,并认为我下降到内联汇编(我认为它实际上提高了可读性)。我已经设法将这个段错误缩小到一个特定的功能。它位于粘贴的第22行。
但它始终是段错误。如您所见,str作为argv [1]传递。
我可以手动对argv [1](例如argv[1][0] = 'q'
)进行操作,所以我不完全确定为什么这不起作用,特别是考虑到nots
之前它成功运行not8
和not2
。是否有一些我不知道的时髦的事情?这里出了什么问题?
通用代码审查也很好;我是C的新手。
答案 0 :(得分:2)
您的问题是password
变量。您只分配一个元素,然后在password++
循环中执行for
。因此,第二次进行循环时,你无处可去。
代码显示您使用的概念太复杂了,而不是您现在掌握的概念。
malloc
。unsigned char
通常是
正确的类型来检查个人
对象的字节。