0

以下代码给了我一个分段错误

void parseInput(char usrIn[])
{
char retCmd[MAX_INPUT];
retCmd[0] = usrIn[0];
printf('Debug: %c\n', retCmd[0]);
}

这是我在 C 语言中的第一个大项目,但我认为这是 printf 给我的错误..但我不确定......

4

2 回答 2

5

您的原始行:

printf('Debug: %c\n', retCmd[0]);


应该如何:

printf("Debug: %c\n", retCmd[0]);


注意从单引号到双引号的变化

于 2013-10-06T00:23:47.543 回答
-1

您需要确保数组不是零长度的。如果是,则第一个元素为空,当您尝试访问数组中不存在的元素时,您将收到段错误。sizeof(array) / sizeof(array[0])您可以使用或使用获取数组长度int main(int argc, char** argv),并检查 argc 以获取 argv 数组中的元素数。

于 2013-10-06T00:28:52.520 回答