这是一个关于C语言字符数组清空数据的问题

#include <stdio.h>
#include <stdlib.h>

#include<string.h>
int main()
{
    char a[]={'1','2'}; 
    printf("%s",a);
    memset(a,0,sizeof(a));
    printf("%s",a);
      system("pause");
        return 0;
}

我想通过mesmset完成清楚字符数组数据的功能,但是没有成功,求一个方法能清楚字符数组数据。

char a[]={'1','2', '\0'}; 
printf("%s",a);
    应该这样写,否则输出了12之后可能有乱码

    字符数组为什么要清空呢
    a[0] = '\0';
    printf("%s",a);
    这样再输出就没有了。