char
の配列をscanf
と読み、長さが15より大きいかどうかを確認したい。 ときどき動作する。 (私はエラーを取得しない場合 - >コアダンプ。)C文字配列ユーザー入力チェックの長さ
マイコード:
#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、オーバーフローは1つ、' \ 0 '。 – Kevin