我的代码中的错误未在此范围内声明

时间:2013-08-31 16:01:37

标签: c

我认为它应该可行,我尝试做的是捕获一个值并将其打印在屏幕上,但是我收到以下错误。

  

C:\ Users \ luis \ Documents \ c ++ \ estructura de datos \ ejemplo_lista.cpp In   function'void mostrar()':   80 13 C:\ Users \ luis \ Documents \ c ++ \ estructura de   datos \ ejemplo_lista.cpp [错误]'list'未在此范围内声明   80 20 C:\ Users \ luis \ Documents \ c ++ \ estructura de   datos \ ejemplo_lista.cpp [错误]'value'未在此范围内声明

------开始MAIN ---------------------------------

  int main(){

    menu();
    show();

     getch();
}

------结束MAIN ------------------------------------

//Function Menu
    void menu()
    {
            NODE = NULL; 
        int choice;
        int value;
        while(choice!= 2){
         printf("********** MENU **********\n");
         printf ("1. Login data \n");
         printf ("2. exit \n");
         printf("**************************\n");
         scanf ("%i",&choice);


                switch (choice){
                    case 1:
                         printf("Please enter a value \n");
                         scanf("%i",&value);
                         add (list, value);
                         break;
                    case 2:
                         break;
               }
              system("pause");
            }

    }

输入功能

void add (NODE &list,int value)
{

   NODE aux_list;
   aux_list =(data_structure*) malloc (sizeof (data_structure));
   aux_list->data = value;
   aux_list->next = list;
   list = aux_list;
}
void show()
{

    NODE other_list;
   add(list, value);
   other_list = list;
   / / Display the elements of the list
    while(other_list != NULL)
     {
         printf("%i \n",other_list->data);
          other_list = other_list->next;

     }

}

--------------------- edit ------------------------- -

ready to solve it this way void mostrar(NODO lista,int valor) { lista=NULL;

3 个答案:

答案 0 :(得分:1)

正如错误消息所示,在函数void mostrar()中,您使用未在此函数范围内定义的变量listavalor

答案 1 :(得分:1)

mostrar()中,您尝试使用变量lista。但是未在此范围内声明的列表。您需要将其作为参数传递,或在函数中声明此变量以避免此错误。

答案 2 :(得分:1)

你忘了声明变量lista的类型, 或者可能将其声明为函数mostrar()中的参数。

 NODO lista; /* This one */

 void mostrar(NODO lista)      /* Or this one */ 

对象lista必须可以在函数mostrar()中访问。

(更新:问题已更改为有英文标识符,因此我将在下面添加翻译版本):

 NODE list; /* This one */

 void show(NODE list)      /* Or this one */