>>730
別に問題は無いけど直接newを使うとdeleteし忘れの可能性があるし、関数のシグネチャからは内部でnewしてることがわからないので
いちいち関数の中身を見ないとdeleteが必要かどうかわからないなど保守の手間がかかるので避けたほうがいい。
この場合はstd::vector<char>を使うのがいい。スコープを超えて使いたいならスマートポインタの類を使う。
int ReadVariableData(std::vector<char>& a)
{
 int size = GetSize();
 a.resize(size);
ReadData(&a[0],size);
 return size;
}

void main(void)
{
 std::vector<char> a;
 int size = ReadVariableData(a);
 //処理
 //delete不要
}