質問を正しく表現していない可能性がありますが、次のコードで申し訳ありません。
int main() {
char* a=new char[5];
a="2222";
a[7]='f'; //Error thrown here
cout<<a;
}
プログラムで a[7] にアクセスしようとすると、a[7] が割り当てられていないため、エラーが発生します。
しかし、クラスで同じことをすると:
class str
{
public:
char* a;
str(char *s) {
a=new char[5];
strcpy(a,s);
}
};
int main()
{
str s("ssss");
s.a[4]='f';s.a[5]='f';s.a[6]='f';s.a[7]='f';
cout<<s.a<<endl;
return 0;
}
コードは機能し、文字「abcdfff」を出力します。最初のプログラムでは割り当てられなかった a に char[5] しか割り当てられていない場合、コード内の a[7] などにアクセスするにはどうすればよいでしょうか。