不同之处在于printf()写入标准输出并sprintf()写入缓冲区str3.如果str3不足以包含结果字符串,那么它是未定义的行为,并且可能是崩溃的原因.
str3必须正确初始化(不是NULL或未初始化),并且必须指向足够的空间来容纳strlen(str1) + strlen(str2) + 2字符.该+ 2作为/和终止空字符.例如:
char* str3 = malloc(strlen(str1) + strlen(str2) + 2);
if (str3)
{
sprintf(str3, "%s/%s", str1, str2);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
178 次 |
| 最近记录: |