Ncurses / C/C++:使用getstr()并防止溢出(必须有更好的方法来执
发布时间:2020-12-16 10:25:47 所属栏目:百科 来源:网络整理
导读:我目前正在进入我的第一个完整的C项目,我遇到了与Ncurses有关的障碍. getstr()需要一个char数组作为输入,但是有了这个,就没有办法防止缓冲区溢出.让我假装我正在使用此输入来获取名称.我的代码将是以下内容: int main(){ char* nameTemp = new char[160]; i
我目前正在进入我的第一个完整的C项目,我遇到了与Ncurses有关的障碍.
getstr()需要一个char数组作为输入,但是有了这个,就没有办法防止缓冲区溢出.让我假装我正在使用此输入来获取名称.我的代码将是以下内容: int main(){ char* nameTemp = new char[160]; initscr(); getstr(nameTemp); endwin(); delete nameTemp; return 0; } 但是如果用户决定使用超过160个字符作为他的名字,会发生什么?我收到错误,程序失败. 注意:我正在使用Ubuntu 12.04和g 解决方法
使用:
int getnstr(char *str,int n); 最多可读取n个字符. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |