首页 > 解决方案 > 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是受欢迎的。

标签: c++objectnew-operator

解决方案


尝试使用delete未分配的内存new未定义的行为。Whendelete p被调用,p指向a,并且a没有被分配new。时期。这个问题完全没有关系cincin用于分配值的事实a无关紧要的。


推荐阅读