int wresize(WINDOW *win, int lines, int columns);
If either dimension is larger than the current values, the window's data is filled with blanks that have the current background rendition (as set by wbkgndset) merged into them. If the current cursor position is outside the retained area of the window, the cursor is moved to within the nearest window edge. Window data is otherwise preserved.
This function will fail if either of the new dimensions less than or equal to zero, or if memory cannot be allocated or reallocated for the window.
Note that wresize performs non-reentrant malloc(3x) operations, so it isn't advisable to resize from within an interrupt handler. Instead, have your handler set an event flag to be interpreted next time around your program's command loop.