gpt4 book ai didi

c - 段错误 :core Dumped while using mvscanw function of ncurses in c on ubuntu

转载 作者:太空宇宙 更新时间:2023-11-04 08:53:29 24 4
gpt4 key购买 nike

我正在尝试从键盘读取输入字符串并将其显示在 ncurses 的新窗口中。接收到的字符串被传递给函数显示。这个函数有一个 linklist 。该字符串从列表的顶部到末尾与此链接列表结构的元素进行比较。如果找到匹配项,它会打印那些特定的列表元素,如果没有,它就会出来。

代码如下:

void main()
{
char *str=(char*)malloc(10*sizeof(char));
mvprintw (1,0, "%s","ivrcode:");
mvscanw(1,8,"%s",str);
mvprintw (1,8, "%s",str);
initscr ();
cbreak();
curs_set (2);
clear();
display1(str);
refresh();


}


void display1(char *r)
{ char * status;
int thisDTMF;
struct linklist * curser=listhead;
int count;
mvprintw (2,0, "%s","vId");
mvprintw (2,10, "%s","msisdn" );
mvprintw (2,25, "%s","ivrCode" );
mvprintw (2,35, "%s","state" );
mvprintw (2,45, "%s","DTMF" );
count = 4;
while(curser!=NULL)
{ status=getState(curser->state);
thisDTMF=getDTMF(curser->dtmf);
if(curser->ivrCode==r)
{ mvprintw (count,0,"%d",curser->vId);
mvprintw (count,10,"%s",curser->msisdn);
mvprintw (count,25, "%s",curser->ivrCode );
mvprintw (count,35, "%s",status );
if(thisDTMF==35||thisDTMF==42)
mvprintw (count,45, "%c",thisDTMF );
else
mvprintw (count,45, "%d",thisDTMF );
count++;
}

curser=curser->next;
}

}

它正在从键盘获取输入字符串并进行打印。
编译成功。
但是当我按下回车键时,它什么也没显示。
有什么建议吗?

最佳答案

void main()
{
char *str; <--- Declaration
mvprintw (1,0, "%s","ivrcode:");
mvscanw(1,8,"%s",str);
mvprintw (1,8, "%s",str); <--- Used without initialzation
...
}

在这里您声明了指针 str 但您没有对其进行初始化或分配任何值。然后你已经使用它了,所以它是未定义的行为。如果你说 it worked well 那么这就是未定义的行为。它看起来可以工作,它可能会崩溃,产生错误的输出,等等......

如果你没有正确分配它,你期望 print 的输出是什么?

关于c - 段错误 :core Dumped while using mvscanw function of ncurses in c on ubuntu,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18628635/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com