gpt4 book ai didi

c - 结构数组段错误

转载 作者:太空宇宙 更新时间:2023-11-04 02:07:09 25 4
gpt4 key购买 nike

我一直在读取结构数组的值时遇到问题,我不断遇到段错误。这是代码:

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 {
字符 *名称;
内部参数;
字符 *argv[MAX_ARGS];
};

我做错了什么?非常感谢您的帮助。

最佳答案

您永远不会初始化 cmd 也不会写入任何数据。访问未初始化的数据在 C 中是未定义的行为,所以是的,崩溃是有效的。在读取之前,您需要向 cmd[0].name 中写入一些内容。

关于c - 结构数组段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19480891/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com