注册 登录
编程论坛 C++教室

请教各位大佬,关于cin的输入问题

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