引用结构值,但不断出现大量错误

时间:2014-11-29 11:46:08

标签: c struct compiler-errors

这是下面的代码。我在编译期间一直遇到很多错误,错误:取消引用指向不完整类型的指针      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, &registerX, memory);
   case 102:
       second(&count, &registerY, memory);
   default:
        printf("invalid code, please try again\n");
 }


} 

1 个答案:

答案 0 :(得分:1)

struct registers
 {  
      int data;     

 } . . . . .

这是main()的本地。在全球范围内定义它。