Привет всем!
Изучаю ncurses. Решил создать совою обертку чтобы лекго оперировать сущностями этой библиотеки используя ООП. Так вот создал я класс window и решил сделать анимацию, чтобы окошко передвигалось по верхнему краю экрана от левого края к правому, вот код класса:
class window
{
WINDOW* m_handler;
public:
window()
{
m_handler = newwin( LINES/2, COLS/2, 0, 0 );
}
window( int height, int width, int start_y, int start_x )
{
m_handler = newwin( height, width, start_y, start_x );
}
~window()
{
wborder( m_handler, ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ');
if( m_handler )
{
delwin( m_handler );
wrefresh( m_handler );
}
m_handler = NULL;
}
void show()
{
if( m_handler )
{
box( m_handler, 0, 0 );
wrefresh( m_handler );
}
}
};
void func( int i )
{
window win;
win.show( 10, 10, 0, i);
usleep( 100000 );
}
int main()
{
initscr();
cbreak();
for( int i = 0; i < COLS - 10; ++i )
{
func(i);
}
endwin();
}
В итоге при запуске получаю Segmentation fault:
Program terminated with signal 11, Segmentation fault.
[New process 12960]
#0 0xb7cefe91 in ?? () from /lib/tls/i686/cmov/libc.so.6
(gdb) bt
#0 0xb7cefe91 in ?? () from /lib/tls/i686/cmov/libc.so.6
#1 0xb7cf1b8d in ?? () from /lib/tls/i686/cmov/libc.so.6
#2 0xb7cf39c5 in malloc () from /lib/tls/i686/cmov/libc.so.6
#3 0xb7f12075 in _nc_hash_map () from /lib/libncurses.so.5
#4 0xb7f11344 in _nc_scroll_optimize () from /lib/libncurses.so.5
#5 0xb7f26c6d in doupdate () from /lib/libncurses.so.5
#6 0xb7f1d9c3 in wrefresh () from /lib/libncurses.so.5
#7 0x08048d4f in ngui::window::~window ()
#8 0x08048ac4 in func ()
#9 0x08048b32 in main ()
Подскажите, что я делю не так ??