当前位置: 技术问答>linux和unix
使用ncurse库,碰到一个非常令我费解的问题
来源: 互联网 发布时间:2016-12-28
本文导语: 本帖最后由 fjlangzi 于 2011-09-06 11:07:36 编辑 我在一个函数写了一个vt100页面,将可执行文件拷贝我的板子上运行。 页面是否正常运行,竟然跟一个毫无关系的变量瓜葛起来。 我的这个变量是这样定义的 char aaaaaa[] =...
页面是否正常运行,竟然跟一个毫无关系的变量瓜葛起来。
我的这个变量是这样定义的 char aaaaaa[] = "sadfasdfasdfsdf";
只要有这句,放在我这个函数的任何地方,我的页面就可以运行。
如果没有这句,该页面不能正常运行。
太蹊跷了。。。这是为什么???
源代码如下:
int mcu_test_win()
{
WINDOW* window;
FORM* form;
const char field_len = 9;
FIELD* field[field_len];
field_type_t field_type[field_len];
char* field_prompt[field_len];
int c,i,loop = 1;
int ret = -1;
char map[] = "\Root\MCU\Test";
char aaaaaa[] = "sadfasdfasdfsdf"; //就是这句!!!!!
create_field(field, field_len);
field_set_label(field[0], "1. Vendor name:");
field_set_label(field[1], "Taicom");
field_type[1] = FIELD_LABEL;
field_prompt[1] = NULL;
field_set_label(field[2], "2. Product name:");
field_set_label(field[3], "TC508");
field_type[3] = FIELD_LABEL;
field_prompt[3] = NULL;
field_set_label(field[4], "3. Soft version:");
field_set_label(field[5], "SW 0.1");
field_type[5] = FIELD_LABEL;
field_prompt[5] = NULL;
field_set_label(field[6], "4. Hard version:");
field_set_label(field[7], "HW 0.2");
field_type[7] = FIELD_LABEL;
field_prompt[7] = NULL;
create_win(&window);
bind_form2win(field, &form, window);
show_normal_win(window, map, field_prompt[1], NULL, form);
while(loop)
{
wgetkey(window, &c, WAITCOUNT);
switch(c)
{
case WKEY_ESC:
loop = 0;
ret = PREV_PAGE;
break;
case WKEY_TIMEOUT:
login_win();
show_normal_win(window, map, field_prompt[1], NULL, form);
break;
}
pos_form_cursor(form);
wrefresh(window);
}
unpost_form(form);
free_form(form);
for(i=0; i