入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

C++ new 动态数组初始化

创建时间:2015-11-07 投稿人: 浏览次数:124

问题:红字部分的代码是否有问题?

代码是没有问题的,考虑的是new申请的内存有没有初始化?

在这段代码中,有无初始化是没有关系的,因为str字符串中已含有字符串结束标志。




inline mystring::mystring( const char* str )
{
	if (!str){
		m_pdata = 0;
	} 
	else{
<span style="color:#ff0000;">		m_pdata = new char[strlen(str)+1];
		strcpy(m_pdata,str);</span>
	}
}



动态数组初始化:


对于内置数据类型元素的数组,必须使用()来显示指定程序执行初始化操作,否则程序不执行初始化操作:

int *pia = new int[10]; // 每个元素都没有初始化

int *pia2 = new int[10] ();  // 每个元素初始化为0


类类型元素的数组,则无论是否使用(),都会自动调用其默认构造函数来初始化:

string *psa = new string[10];  // 每个元素调用默认构造函数初始化

string *psa = new string[10]();  // 每个元素调用默认构造函数初始化



参考:http://www.cnblogs.com/mywebname/articles/2291540.html

声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
  • 上一篇:没有了
  • 下一篇:没有了
未上传头像