gpt4 book ai didi

c - header 中函数名称之前应有初始值设定项。 C

转载 作者:行者123 更新时间:2023-11-30 15:45:52 32 4
gpt4 key购买 nike

我收到“‘read_file’之前预期的初始化程序错误。该错误位于“指令代码[] read_file(指令代码[])”行。”它在线一直在网上搜索帮助,所有im发现是与 C++ 相关的帖子,因此澄清这一点是针对 C 的。

我尝试移动函数原型(prototype)的位置。我之前编写了相同的程序,实现了链表而不是数组,并且没有错误,所以我认为它可能与结构体数组有关。

感谢您的帮助。

#include<stdio.h>
#include <stdlib.h>

typedef struct instruction{
int op; //opcode
int l; // L
int m; // M
} instr;

FILE * ifp; //input file pointer
FILE * ofp; //output file pointer
instruction code[501];

instruction code[] read_file(instruction code[]);
char* lookup_OP(int OP);
void print_program(instruction code[]);
void print_input_list(instruction code[]);


int main(){

code = read_file(code);
print_input_list(code);//used for debugging
print_program(code);
}

instruction code[] read_file(instruction code[]){
int i = 0;

ifp = fopen("input.txt", "r");

while(!feof(ifp)){
fscanf(ifp,"%d%d%d",&code[i]->op, &code[i]->l, &code[i]->m);
i++;
}
code[i]->op = -1; //identifies the end of the code in the array
fclose(ifp);
return code;
}

最佳答案

instruction code[] read_file(instruction code[]) 不是合法语法。您不能从函数返回数组。另外,全局code是一个数组。所以这个分配也是非法的 - 你必须修复这两个地方。

 code = read_file(code);

看起来你想要的只是:

void read_file(instruction code[])

并且只是这样调用它:

read_file(code);

无需分配。

实际上,现在我读了更多内容,由于 code 是全局的,因此您根本不需要参数。

关于c - header 中函数名称之前应有初始值设定项。 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18755376/

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