这是下面的代码。我在编译期间一直遇到很多错误,错误:取消引用指向不完整类型的指针 X1-> data = X1-> data + Y1-> data; 请帮忙。代码很简单,只有6个案例。基本上,我有两个寄存器,X和Y,以及一个包含命令和值(1000内存位置)的多维数组。因此,当用户键入命令101时,它进入功能' First',因此它是寄存器X,并键入寄存器X的值,并且数组存储器将该值保存在位置[1] [1],以及位置[1] [0]的命令。 102用于寄存器Y.
#include<stdlib.h>
#include<stdio.h>
#define SIZE 1000
int first(int *counter, struct registers* X1, int m[][2])
{
int value;
printf("Enter the value for the X\n");
scanf("%d", &value);
X1->data = value;
m[*counter][0] = 101;
m[*counter][1] = X1->data;
*counter = *counter++;
return 0;
}
int second(int *counter, struct registers* Y1, int m[][2])
{
int value;
printf("Enter the value for the Y\n");
scanf("%d", &value);
Y1->data = value;
m[*counter][0] = 101;
m[*counter][1] = Y1->data;
*counter = *counter++;
return 0;
}
int main()
{
int memory[SIZE][2];
int count = 0;
int choice;
struct registers
{
int data;
} registerX, registerY;
printf("Enter the instruction number:\n");
scanf("%d", &choice);
switch(choice)
{
case 101:
first(&count, ®isterX, memory);
case 102:
second(&count, ®isterY, memory);
default:
printf("invalid code, please try again\n");
}
}
答案 0 :(得分:1)
struct registers
{
int data;
} . . . . .
这是main()
的本地。在全球范围内定义它。