Hello togheter。
const char* buffer = "";
printf("Creating Buffer..\n");
snprintf(buffer, sizeof(buffer), "mkdir %s", argv[1]);
printf("Created, executing..\n");
system(buffer);
为什么上面的代码给了我这个错误?
Bus error: 10
感谢您的回答
星
答案 0 :(得分:2)
你的第一行说:
-'MESSAGE'
)。= "";
)char* buffer =
)修改该字符串。接下来你要告诉const
覆盖字符串。
您还告诉snprintf()
您拥有的内存是snprintf()
变量'buffer'。但事实并非如此 - 你拥有的内存是sizeof()
空字符串sizeof()
。指向字符串的变量大小不同。
你承诺不会覆盖内存,即使你没有答应,你只有空字符串的内存,而不是包含任何字符的字符串。
答案 1 :(得分:0)
访问坏内存时会出现Bu错误。你没有指针的内存。您正在使用mkdir命令,因此您可以为单个目录创建这样的内存。
next