作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一段代码,它在一个函数中使用 new_panel 分配面板,并尝试在另一个函数中使用 del_panel 取消分配它们。代码示例如下
void medical_cards(int regid){ //work with patient's medical cards
/*...*/
PANEL *pmedcards[cards];
WINDOW *wmedcards[cards];
bind_windows(pmedcards, wmedcards, cards);
//this function allocates panels
/*...*/
update_panels();
doupdate();
/*...*/
i = 0;
while (i < cards)
del_panel(pmedcards[i++]);
/*here I get segfault with backtrace pointing
to wtouchln function of the ncurses library*/
i = 0;
while (i < cards)
delwin(wmedcards[i++]);
return;
}
void bind_windows(PANEL **pmedcards, WINDOW **wmedcards, int cards){
int height = 15, width = 40, ypos = LINES - 20, xpos = COLS - 45;
int i = 0;
while (i < cards) {
wmedcards[i] = newwin(height, width, ypos, xpos + i);
box(wmedcards[i++], 0, 0);
}
i = 0;
while (i < cards)
pmedcards[i] = new_panel(wmedcards[i++]);
}
问题是我在尝试释放面板、调试器时遇到段错误指出 wtouchln 函数是麻烦的根源。似乎以前没有人遇到过这样的问题,并且手册页上很少有 del_panel 函数的描述,任何帮助都是值得赞赏的。我期望的是 del_panel 将完成释放资源的工作并正常返回,而不会导致程序崩溃。
最佳答案
pmedcards[i] = new_panel(wmedcards[i++]);
第一个 i 或 i++ 是什么?这是UB。
关于c - ncurses库的del_panel函数导致段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54852217/
我是一名优秀的程序员,十分优秀!