【发布时间】:2020-07-09 04:33:15
【问题描述】:
我在读取结构数组的值时一直遇到问题,我一直遇到分段错误。代码如下:
int main()
{
/* Get PATH Environment Variable */
char *pathv[MAX_PATHS];
char cmd_line[MAX_ARGS];
struct command_t cmd[3]; //THIS IS THE STRUCT ARRAY
size_t len = 0;
/* Parse The Path */
ParsePath(pathv);
while(1) {
/* Print Continuous Prompt */
PrintPrompt();
/* Read Command Line & Parse It */
ReadCommand(cmd_line);
ParseCommand(cmd_line, cmd); //PASSING IT TO THIS METHOD
}
return 0;
}
int ParseCommand(char *buffer, struct command_t *cmd)
{
char *name = "Test";
cmd[0].name; //IF THIS IS COMMENTED OUT AND THE OTHER LINE AS WELL, PROGRAM RUNS
printf("%s\n", cmd[0].name); //FINE....THESE TWO LINES CAUSE SEG. FAULT
}
struct command_t {
char *name;
int argc;
char *argv[MAX_ARGS];
};
我做错了什么?非常感谢您的帮助。
【问题讨论】:
-
你在哪里分配给
cmd[0].name? -
您可能还想向我们展示
struct command_t的定义。 -
对不起,我刚刚添加了我的结构代码。这个结构在一个单独的头文件中!