确定下
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
[解决办法]
for(int i=0;i<3;i++) { s[i] = new char [4]; //应该要分配内存吧 memcpy(s[i],a,3);// ...