我无法理解为什么我在这里收到错误。 我假设它可能与尝试访问数组中不存在的地方有关? (虽然我无法看到我在做什么) 程序运行时,它将返回正确的答案,但随后关闭运行时错误。非常感谢您在将来避免这些问题的任何帮助和一般建议。感谢
int len(char s[]){
int len = 0;
while (s[len] != 0) len++;
return len;
}
int isPalindorme(char s[]){
int length = len(s);
int limit = length / 2.0 + 0.5;
for (int i = 0; i < limit; i++){
if (s[i] != s[length - i -1]){
return 0;
}
}
return 1;
}
void main(){
char a[] = "";
cin >> a;
cout << len(a) << endl;
cout << isPalindorme(a);
}
答案 0 :(得分:2)
a
指向大小仅为1个字节的缓冲区(空终止符),因此cin
在将数据复制到该地址时会丢弃堆栈。
你应该使用std::string
代替(或者让你的缓冲区更大)。