为什么向字符数组写入超长的字符不会出错?
#include "stdafx.h"
#include<stdlib.h>
int main()
{
char a[8]; // 定义长度为8
size_t i;
i = _snprintf(a, 13, "%012d", 123456789); // 写入长度12的字符
printf(a); // 打印到窗口显示 000123456789
printf("\n");
system("pause");
return 0;
}
定义的a长度只有8个,运行结果要么报错要么只打印前8个字符才对啊,为什么打印到窗口的会是超长的字符呢?