- 406 名前:デフォルトの名無しさん [2007/11/16(金) 21:10:12 ]
- 初歩的な質問スミマセン
#include<stdio.h> #include<stdlib.h> #include<string.h> int main() { char *cp=NULL; void *ptr=NULL; if((ptr=(char*)calloc(10,sizeof(char)))==NULL){ printf("error\n"); exit(EXIT_FAILURE);} if((cp=strchr(fgets(ptr,100,stdin),'\n'))!=NULL){ *cp='\0';} printf("%s",ptr); return EXIT_SUCCESS; } 半角文字10文字分のメモリをcalloc関数で確保して fgets関数で10文字以上入力しましたが 普通10バイト分の配列を用意しfgets関数でそれ以上の文字を入力すると オーバーフローが起き、強制終了しますよね? ですがこれでは起きないんです、何故でしょうか
|

|