snprintf()遇到的问题

问题遇到的现象和发生背景

联系了一下snprintf()函数发现怎么运行只要size_t<格式化字符串长度就会报错,想问一下怎么回事,只要是snprintf()运行出来所有东西都是错的,比如下面那张图应该是a \n 1\n 4

用代码块功能插入代码,请勿粘贴截图
#include 
#include  
int main()
{
    char a='a';
    size_t n,c;
    char buf[80];
    c=snprintf(buf,2,"%cxyz",a);
    printf("%s", buf);
    n=strlen(buf);
    printf("\n%d",n);
    printf("\n%d",c);
    return 0;
}

运行结果及报错内容

img

snprintf(buf,2,"%cxyz",a);
把2换成79,第二个参数是长度
snprintf(buf,79,"%cxyz",a);