c++ - cin 无论如何会影响 c++ 中新关键字的使用吗?
问题描述
我试图cin
在创建指针并使用new
关键字分配内存之前使用用户输入。代码产生错误。
#include <iostream>
int main(){
int a;
std::cin >> a;
std::cout << "val of a is " << a;
int *p = new int;
p = &a;
delete p;
return 0;
}
错误是:
free(invalid pointer)
Aborted(code dumped)
new
关于关键字的任何知识?它如何处理,以及它与它的关系cin
是受欢迎的。
解决方案
尝试使用delete
未分配的内存new
是未定义的行为。Whendelete p
被调用,p
指向a
,并且a
没有被分配new
。时期。这个问题完全没有关系cin
。cin
用于分配值的事实a
是无关紧要的。
推荐阅读
- node.js - 如何在 Reactjs 中使用 useEffect 获取带有 ID 的 url
- jquery - Jquery 使用每个替换具有特定 ID 的某些链接
- android - 如何在弹出窗口中动态调整图标大小(Android)
- php - 将图像 URL 转换为锚标记内的图像标记
- javascript - 如何在 HTML 的不同文件中使用 JavaScript 类并且仍然可以在 IOS 上工作?
- plotly-dash - 如何在 Plotly Dash 中动态使用实现 ListGroupItem 的 ListGroup?
- docker - Docker 容器中的闪亮代理 - 绑定到 127.0.0.1 或 0.0.0.0?
- reactjs - 在反应中为什么我们可以访问“事件”而不将其作为参数传递?
- c# - EF Core 设置环境无法按预期工作
- c# - 从动态构建的数据集创建报告