使用带有"snprintf"的sizeof运算符是否可以?例如
char cstring[20];
snprintf(cstring,sizeof(cstring),"%s","somestring......");
Run Code Online (Sandbox Code Playgroud)
是的,没关系,你发布的具体情况很好,除了你没有检查返回值,所以你不知道该字符串是否被截断.
您发布的示例很好。
但是,在数组衰减到指针的任何情况下,它都不好用:
void func(char s []) {
snprintf(s,sizeof(s),"%s","somestring......"); // Not fine, s is actually pointer
}
int main(void) {
char cstring[20];
func(cstring); // Array decays to pointer
Run Code Online (Sandbox Code Playgroud)