sprintf:
char temp[10];
sprintf(temp, "temp:%s", "etewtwtewwefwfewwefwefewfw");
printf("temp:%s\n", temp);
运行结果会出现内存错误,这是因为其自动在temp超过10的地址空间,继续往后追加数据,这样便会导致访问到不应该访问的数据,导致内存错误
char temp[10];
snprintf(temp, sizeof(temp), "temp:%s", "etewtwtewwefwfewwefwefewfw");
printf("temp:%s\n", temp);
这样的话,能保证写入的数据最大为temp的10的数据(包括\0)
因此,处于安全性考虑,应使用snprintf来替换sprinf使用