我可以毫无问题地编译此代码,现在的想法是测试在继续之前我可以成功输入密码密钥(命令行参数)而没有任何问题。我没有发现为什么我的代码总是会返回分段错误的运气,然后我看到了在第四行的argv [1]前面加一个'*'的提示,这似乎解决了我所有的问题。有人可以向我解释为什么吗?
np.concatenate()
答案 0 :(得分:0)
然后我看到了一个提示,在第四行的argv [1]前面加了一个'*',这似乎解决了我所有的问题。有人可以向我解释为什么吗?
这意味着,在您看到该提示之前,它是这样的:
isdigit(argv[1])
您在这里混合类型。
argv
是char*
的数组。这意味着argv[1]
的类型为char*
。
但是isdigit
期望使用int
类型的参数。您应该为此收到一些编译器警告。
该函数期望获得的值在char
或EOF
范围内。传递指针很可能会提供一些超出范围的值。
如果添加*
,则将取消引用char指针,并采用该字符串的第一个字符。这就是isdigit
所期望的,并且可以正常工作。