读书人

确定上

发布时间: 2012-09-18 16:21:42 作者: rapoo

确定下
class A
{
char *s[3]; //数组指针
public:
A()
{
char a[]="abc";
for(int i=0;i<3;i++)
s[i]=a; //这样写应该是错的吧,是不是构造函数结束后a就没有了所有的s[i]都指向了错误的地址
}

是不是应该写成
A()
{
char a[]="abc";
for(int i=0;i<3;i++)
{
s[i] = new char [4]; //应该要分配内存吧
memcpy(s[i],a,3);
}
}
};

[解决办法]
是的 记得delete释放内存
[解决办法]
对的,应该分配内存,不过拷贝的时候用strcpy比较好。
[解决办法]
copy的时候长度不是3,是3+1
[解决办法]

探讨
copy的时候长度不是3,是3+1

[解决办法]
代码:
C/C++ code
for(int i=0;i<3;i++)  {  s[i] = new char [4]; //应该要分配内存吧  memcpy(s[i],a,3);// ... 

读书人网 >C++

热点推荐