Dynamically allocation memory for the display buffer based on column count.

modified:   src/sneakers.c
This commit is contained in:
Brian Barto 2018-06-13 18:58:24 -04:00
parent 40f7d1a080
commit 56df5f3de5

View File

@ -15,7 +15,7 @@ int main(void) {
int termCols, spaces = 0; int termCols, spaces = 0;
char input; char input;
char r_opts[8]; char r_opts[8];
char display[4000]; char *display = NULL;
char *head1Left = "DATANET PROC RECORD: 45-3456-W-3452"; char *head1Left = "DATANET PROC RECORD: 45-3456-W-3452";
char *head1Right = "Transnet on/xc-3"; char *head1Right = "Transnet on/xc-3";
char *head2Center = "FEDERAL RESERVE TRANSFER NODE"; char *head2Center = "FEDERAL RESERVE TRANSFER NODE";
@ -36,6 +36,13 @@ int main(void) {
ioctl(0, TIOCGWINSZ, &w); ioctl(0, TIOCGWINSZ, &w);
termCols = w.ws_col; termCols = w.ws_col;
// Allocate space for our display string
if ((display = malloc(20 * termCols)) == NULL)
{
fprintf(stderr, "Memory Allocation Error. Quitting!\n");
return 1;
}
// Start building the display string // Start building the display string
strcpy(display, head1Left); strcpy(display, head1Left);
@ -172,7 +179,7 @@ int main(void) {
nmseffect_set_returnopts(r_opts); nmseffect_set_returnopts(r_opts);
nmseffect_set_clearscr(1); nmseffect_set_clearscr(1);
// Execut effect // Execute effect
input = nmseffect_exec(display); input = nmseffect_exec(display);
// Print user choice // Print user choice
@ -181,5 +188,7 @@ int main(void) {
else else
printf("You chose %c\n", input); printf("You chose %c\n", input);
free(display);
return 0; return 0;
} }