の配列を動的に割り当てたいstd::string
。割り振る機能があります。プログラム全体で何度でも関数を呼び出すことができます。配列へのポインターが既に割り当てられている場合は、最初にメモリを解放してから、新しいメモリを割り当てます。
これが私が試したものです:
std::string *names;
bool already_allocated = false;
void allocate( int n)
{
if( already_allocated)
{
delete names;
}
names = new std::string[n];
already_allocated = true;
}
int main()
{
allocate(5);
allocate(6);
return 0;
}
allocate()
しかし、行の2回目の呼び出しで実行時エラーが発生していますdelete names
私は何か誤解していますか?