c++的问题-初学者对地址分配的提问

问题描述

初学者对地址分配的提问

#include "iostream"
#include "cstring"
#include "string"
using namespace std;
string* getname();

int main()
{
string* name;
name=getname();
cout << *name << " at " << name << endl;
delete []name;
name=getname();
cout << *name << " at " << name << endl;
delete []name;
return 0;
}

string* getname()
{
string temp;
cout << "Enter your last name: ";
cin >> temp;
string* pn = new string[temp.size()+1];
//为什么去掉temp.size()+1会出错?
*pn = temp;
return pn;
}
//为什么两次地址都相同?

解决方案

 #include "iostream"
#include "cstring"
#include "string"
using namespace std;
string* getname();
int main()
{
    string* name;
    name=getname();
    cout << *name << " at " << name << endl;
    delete name;
    name = NULL;

    name=getname();
    cout << *name << " at " << name << endl;
    delete name;
    name = NULL;
    return 0;
}
string* getname()
{
    string temp;
    cout << "Enter your last name: ";
    cin >> temp;
    string* pn = new string;
    *pn = temp;
    return pn;
}
时间: 2024-10-10 14:35:42

c++的问题-初学者对地址分配的提问的相关文章

ocx atl-clsid的定义类型问题(初学者提问)

问题描述 clsid的定义类型问题(初学者提问) const CLSID CLSID_MyClass = {0x562052A7,0xF17C,0x408D,{0x99,0x9C,0xCC,0xF1,0xEB,0x9E,0xE7,0x14}}; MIDL_DEFINE_GUID(CLSID, CLSID_MyClass,0xB035F76C,0xF12D,0x4903,0xAE,0x9A,0x33,0x4D,0x27,0x4A,0xA8,0x5E); CLSID_MyClass 两者的区别是什么

c++问题-C++初学者的关于学习流程的提问

问题描述 C++初学者的关于学习流程的提问 我是高校在校生,现在自己在学C++现在刚刚看完谭浩强的一本入门级的书籍,了解了C++的一些基本数据结构,语法和类以及继承的用法,会写一些简单的程序,接下来不知道应该学习什么,身边的同学有的在学习算法和编程思想,有的已经在看MFC,请大神给点指点吧! 解决方案 MFC已经奄奄一息,不建议学:如果没有基础的算法.数据结构思想,建议先打点基础:C++很难,谭浩强的书恐怕是不够,建议接着刷C++ primer和Effective C++ 解决方案二: 把C++

编程-汇编语言初学者提问,求老司机解答

问题描述 汇编语言初学者提问,求老司机解答 想在汇编中实现判断是否输入的为一个数字与a的组合,比如输入的必须为1a.2a.20a之类的.想不到什么好方法,本人初学,求指教 解决方案 根据ascii判断 C的实现 bool foo(char * ch) { int s = 0; while (true) { if (s == 0) { if (*ch >= '0' && *ch <= '9') continue; if (*ch == 'a') s = 1; else retur

求助大神帮忙 在线等-JAVA初学者的提问?在线等!

问题描述 JAVA初学者的提问?在线等! 这三个表之间有什么关系 解决方案 ......... 能有什么关系啊. 瞬间觉得你提问是不是没有这么简单. 解决方案二: 哦,原来没有关系啊!我一直在找有什关系呢?看来我想多了 解决方案三: 第2张表的BILLID是第1张表主键的外键,第2张表的SUPPLIERID是第3张表主键的外键 解决方案四: 主外键关联的关系啊,US表中.useid是主键,另外两个id字段是关联的外键,通过主外键关联的关系可以实现通过一张表的数据查询到相关联的另外一张表的数据,实

参数-初学者深夜提问,多有打扰,跪求指点。error C2664

问题描述 初学者深夜提问,多有打扰,跪求指点.error C2664 一个俄罗斯方块的小程序,报错部分代码如下: //显示分数信息 char string[5]; wColors[0]=FOREGROUND_RED| FOREGROUND_GREEN|FOREGROUND_INTENSITY; textout(handle,26+dx,5+dy,wColors,1,_itoa_s(score,string,10)); textout(handle,26+dx,9+dy,wColors,1,_it

mat-opencv初学者提问:如何修改Mat元素的值

问题描述 opencv初学者提问:如何修改Mat元素的值 刚刚接触opencv,Mat数据类型,现在知道怎么访问每个元素的值,但是不知道如何修改特定位置的Mat元素的值,例如一个RGB图片如何提取出某个通道的值?希望高手给说一下,还有就是opencv没有类似android SDk的开发文档吗? 解决方案 http://blog.csdn.net/xiaowei_cqu/article/details/7771760

初学者提问:c++ 参数列表初始化问题

问题描述 初学者提问:c++ 参数列表初始化问题 #include using namespace std; class c { public: c(int m) :b(m) {}; void display() { cout << b << endl; } private: int & b; }; int main() { c ca(5); ca.display(); return 0; } 不知道为什么,输出了很大的数字 解决方案 把类定义里的int& b改成i

初学者提问: opencv标定问题

问题描述 初学者提问: opencv标定问题 findChessboardCorners中,为什么传进vector> corners进去,回来后它的大小和内容完全不对劲呢?(大小目测是2亿多) 小白没有C币,请大神原谅!

java代码-java初学者提问 在类中 用static成员变量实例化自身类 程序的执行顺序过程是怎样的?

问题描述 java初学者提问 在类中 用static成员变量实例化自身类 程序的执行顺序过程是怎样的? class Demo03 { public static void main(String[] args) { A.show(); } } class A { //构造方法 A(){ System.out.println("构造方法执行"); System.out.println(b); System.out.println(c); } static A a=new A(); sta