[从现在起,我正在为大学设计迷宫游戏。我快准备好了只需要美化它。
[这里,我认为'回合执行setTitle函数。每当进行测试时,都会出现一些我从未见过的奇怪症状。
因此,如果我对title [255]数组进行硬编码,则title将附加到cmd数组上。当在函数中将标题设置为参数时,我将值交给setTitle(char title [255])(例如“ * MAZE RUNNER *”),程序崩溃。
我尝试了不同的数组大小,但是这种现象似乎随机出现。
也许是我这方面的初学者缺点?
void setTitle(char title[255]) {
char cmd[] = "title ";
strcat(cmd, title);
system(cmd);
}
int main() {
setTitle("Hello Stackoverflow! I hope you can help me! feelssadman:(");
return 0;
}
您的功能问题很简单;分配给数组cmd
的大小由编译器自动完成,并带有初始化字符串的长度。为了使您的功能正常工作,只需在声明[]
字符串时在cmd
之间放置一些常量即可。
void setTitle(char title[]) {
char cmd[255] = "title ";
strcat(cmd, title);
system(cmd);
}
也请记住,在声明函数参数时不需要255
。被编译器忽略。您也可以将其替换为void setTitle(const char* title)
(实际上是title
的实际含义),但是在需要数组时将其声明为title[]
是更常见和常规的做法。