【发布时间】:2016-03-14 18:07:33
【问题描述】:
我的程序需要打印所有 ABC,但我发现我的代码有问题。我该如何解决? (这次没有指针)。
什么是代码中的运行时错误以及如何修复?
代码如下:
// Elvis’s hip and happening ABC-printing code
#include <stdio.h>
#include <string.h>
#define NUM_ABC_LET 26
void makeABC(char abc[NUM_ABC_LET]);
int main() {
char abcString[NUM_ABC_LET] = "";
makeABC(abcString);
puts(abcString);
return (0);
}
void makeABC(char abc[NUM_ABC_LET]) {
char letter;
for (letter = 'a'; letter <= 'z'; letter++) {
strcat(abc, letter);
}
}
【问题讨论】:
-
char abcString[NUM_ABC_LET]将不足以容纳nul终止符。您正在尝试连接 26 个“字母”,因此目标字符串大小必须至少为 27。 -
“什么是运行时错误”是什么意思?为什么你不知道它是什么?
-
"这次没有指针" - 错误的假设。如果不使用指针,您几乎无法在 C 中对数组执行任何操作。告诉您您遇到什么错误以及在哪里发生错误是您的责任!学习How to Ask。
-
编译器警告不仅仅是在编译期间显示一些花哨的消息!启用并注意它们。