<分区>
我知道这个论点是多余的。因此,我想提前感谢大家的耐心等待。
我仔细阅读了许多关于这个问题的好帖子,例如 this和 this .我在概念上清楚什么是核心转储,但我不知道实际上是什么以及如何检测它。
请考虑我正在处理的以下示例:这是一个检查输入字符串是否为回文的简单程序:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define SIZE 20
int length(char s[SIZE]){
int i;
while(s[i] != 0)
i++;
return i;
}
int main(){
char s[SIZE], c;
int i = 0, j, flag = 1;
printf("\n\nGood morning, master. Tell me a word. I will check if it is a\n"
"palindrome\n\n");
for(i = 0; (c = getchar()) != '\n'; ++i){
s[i] = c;
}
j = length(s) - 1;
while(flag && i < j){
flag = s[i] == s[j];
i++; j--;
}
if(flag)
printf("\n\nSuccess!\n\n");
return 0;
}
是什么导致了这个程序中的“核心碰撞”?