Ошибка получения при захвате значения Opt

#c

#c

Вопрос:

Я вызываю функцию menu_display1(amp;table,rows,amp;opt); в моем файле, и определение этой функции приведено ниже.. Здесь таблица представляет собой результирующий набор, содержащий id, name и cols = 30

 int  menu_display1( resultset *table,int cols,char *opt[])
{
        char *menu_list[table->rows   1];
        int i;


        if(table->rows > 0 amp;amp; strcmp(table->recordset[0][0], "") != 0)
        {

                for(i=0; i<(table->rows); i  )
                {
                        menu_list[i] = table->recordset[i][1];
                }
                lk_dispclr();
                *opt=scroll_menu1(menu_list,i);
        printf("The selected category name is %s",*opt);
                 // if(*opt==CANCEL)
                    //   return CANCEL;

        }
       return SUCCESS;//# define SUCCESS 1
}
  

мне нужно записать значение из opt, и мне нужно его распечатать..

 printf("The option value is %s n",opt);
  

Но я получаю значения мусора в opt ..Я не знаю, как обрабатывать значение opt…

Комментарии:

1. Итак, по сути, вы просите кого-нибудь выполнить отладку printf("%s",scroll_menu1(menu_list,i)); , но вы не предоставили исходный код scroll_menu1 . Как мы должны это выяснить? Я предлагаю упростить вашу программу до минимально возможной программы, которая демонстрирует проблему, а затем опубликовать все это целиком.

2. @Davi….. это код функции scrol_menu…

3. Нет, это код для menu_display1

Ответ №1:

Это потому, что opt это массив строк. Чтобы разыменовать его, вам нужно использовать *opt или opt[0] .

Комментарии:

1. @Nahtan Fellman Да, я тоже пробовал * opt … но снова получаю значения мусора…..