编程论坛
注册
登录
编程论坛
→
C++教室
请教各位大佬,关于cin的输入问题
为想而行
发布于 2019-04-16 17:32, 2306 次点击
char *p = new char[4];
cin >> p;//输入字符串长度大于p指向的内存空间长度时,编译器怎么处理????
delete[] p; //报错
5 回复
#2
rjsp
2019-04-16 18:23
编译 发生在 运行 之前。
所以编译器啥也不知道,未定义行为。
#3
为想而行
2019-04-16 18:36
回复 2楼 rjsp
我想问的是当输入字符串的长度大于p所指向的内存空间长度,后面报错怎么处理
#4
rjsp
2019-04-17 08:21
回复 3楼 为想而行
没法处理,因为这种行为对C++而言已经属于“未定义行为”
#5
lyb661
2019-04-17 12:39
我觉得既然输入不成功,那么建立的指针也就不存在。当然不用删除。
#6
花脸
2019-04-19 09:36
这种情况用getline输入
1