以下代码最多读取 10 个字符stdin
并输出这些字符。
当我输入超过 10 个字符时,我预计它会崩溃,因为msg
没有足够的空间,但它没有!怎么可能?
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main(int argc, char* argv[])
{
char* msg = malloc(sizeof(char)*10);
if (NULL==msg)
exit(EXIT_FAILURE);
scanf("%s", msg);
printf("You said: %s\n", msg);
if (strlen(msg)<10)
free(msg);
return EXIT_SUCCESS;
}