【发布时间】:2016-02-12 18:39:05
【问题描述】:
这是给我错误的行
struct label labelArray[100];
我觉得它的定义不正确。
如果有帮助,这里是其余代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char const *argv[]) {
int curr_addr = 0;
int is_instruction = 0;
struct label labelArray[100];
while(1) {
char* buffer = NULL;
size_t size = 0;
if (getline(&buffer, &size, stdin) == -1) {
// end of file
break;
} else {
char* line = buffer;
if (line[0] == '\t') {
// ignore first tab
line++;
}
const char *ptr = strchr(line, ':');
if (ptr) {
int endlabel = ptr - line + 2;
line += endlabel;
}
...
【问题讨论】:
-
其实我改变主意了。我投票关闭,但现在我投票重新开放。我认为不需要更多代码来演示此错误消息。其实by attempting to compile it the error message is reproduced exactly...
-
@Seb 如果这是唯一的代码,那么答案很简单。我们不知道这是否是唯一的代码。这可能是一个简单的错字,但如果没有 OP 正在使用的代码示例,我们就无法判断。
-
@Seb,问题是 OP 说 “这是行..” 而不是 “这是我的代码..”。所以我们知道有更多的代码,这肯定会让问题更清楚。
-
@Seb 即使发生错误的原因是未定义
label,也可能是因为他们忘记了#include,没有完全相同的名称等。但是如果原因只是没有定义label,那么应该关闭它,因为解决方案可能没有帮助(“定义结构”)。