猿问

c++内存注销和输入修改内存值问题

    num的地址什么时候才变,我中间有隔还几分钟分钟运行一次地址还是不变,ptr_int很听话一直在变。

    还有报错的那句话,是C++没用这种用法吗,是没法输入修改指针类型内存值,还是没法输入修改new类型内存值?

    注释语句的报错提示

error: no match for 'operator>>' (operand types are 'std::basic_istream<char>::__istream_type {aka std::basic_istream<char>}' and '<unresolved overloaded function type>')|


    int num = 213;

    int *ptr_int = new int;

    //cin >> *ptr_int >>  endl ;这句话加上就报错

    *ptr_int = 10;

    cout << "num数值和地址:"<< num << '\t'<< &num << '\t'<< endl

             << "ptr_int数值和地址:"<< *ptr_int<< '\t'<< ptr_int<< '\t'<< endl ;

    delete ptr_int;

    return 0;


慕田峪6419932
浏览 1454回答 1
1回答

onemoo

关于地址:基本上编译之后,变量的地址就被确定了。所以不管运行几次 num 的地址也不会改变。而 ptr_int 所指的地址是每次运行时通过 new 申请出来的,所以其地址并不固定。关于 cin 那句报错:其实错误出在最后的 endl,你应该去掉它。 我在其他的问题中解释过这个,你可以参考下:http://www.imooc.com/wenda/detail/378300
随时随地看视频慕课网APP
我要回答