07/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関数でそれ以上の文字を入力すると
オーバーフローが起き、強制終了しますよね?
ですがこれでは起きないんです、何故でしょうか