以下代码给了我一个分段错误
void parseInput(char usrIn[])
{
char retCmd[MAX_INPUT];
retCmd[0] = usrIn[0];
printf('Debug: %c\n', retCmd[0]);
}
这是我在 C 语言中的第一个大项目,但我认为这是 printf 给我的错误..但我不确定......
以下代码给了我一个分段错误
void parseInput(char usrIn[])
{
char retCmd[MAX_INPUT];
retCmd[0] = usrIn[0];
printf('Debug: %c\n', retCmd[0]);
}
这是我在 C 语言中的第一个大项目,但我认为这是 printf 给我的错误..但我不确定......
您的原始行:
printf('Debug: %c\n', retCmd[0]);
printf("Debug: %c\n", retCmd[0]);
您需要确保数组不是零长度的。如果是,则第一个元素为空,当您尝试访问数组中不存在的元素时,您将收到段错误。sizeof(array) / sizeof(array[0])
您可以使用或使用获取数组长度int main(int argc, char** argv)
,并检查 argc 以获取 argv 数组中的元素数。