【发布时间】:2016-03-16 15:32:27
【问题描述】:
我正在学习 c,我有一个分析问题... 我得到了这个代码:
#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);
}
}
谁能告诉我为什么它会一直崩溃?它有什么问题?
【问题讨论】:
-
1)
strcat将向参数请求char*。 (strncat(abc, &letter, 1);而不是。) 2)char abcString[NUM_ABC_LET] = "";-->char abcString[NUM_ABC_LET+1] = "";: +1 表示空终止。