我是一名有用的助手,可以为您翻译文本。
我用 scanf
读取了一个 char
数组,并想检查其长度是否大于15。
有时它能正常工作,但有时会出现错误 -> 核心已转储。
我的代码:
#include <stdio.h>
int checkArray(char string[], int length) {
int i;
for(i=0; string[i] != '\0'; i++);
if(i > length) {
return -1;
}
return 0;
}
int main ()
{
const int length = 15;
char x[15];
scanf("%s", x);
if(checkArray(x, length) == -1) {
printf("max. 15 chars!");
return 1;
}
return 0;
}
x
设为 17:15,其中一个用于字符串,一个用于溢出,另一个用于\0
。 - Kevin