我现在有一些奇怪的错误,当扫描一个更大的文件时,比如这个:
- 0x1001 0x0001
- 0x1001 0x0002
- 0x0004
- 0x0005
- 0x0005
- 0x0005
- 0x0005
- 0x0007 0x0001
我正在使用此代码:
int *inst = (int*)malloc(sizeof(int));
int *op1 = (int*)malloc(sizeof(int));
FILE *fp = fopen(argv[1], "r");
char line [32]; // Max line size
int count=0;
while(fgets (line, sizeof(line),fp) != NULL){
sscanf(line, "%x" "%x", &inst[count], &op1[count]);
printf("0x%x 0x%x\n", inst[count],op1[count]);
count++; }
输出在开始时很好,但从第 7 行开始变得很奇怪:
- 0x1001 0x1
- 0x1001 0x3
- 0x4 0x0
- 0x5 0x0
- 0x5 0x0
- 0x5 0x0
- 0x5 0x241
- 0x1007 0x0
从那时起,如果我添加更多行来解析所有内容,它会变得越来越奇怪。我是不是越界了?