关于用new定义static型数组的问题
假设在一个类中有这样一个函数
void MyClass::Test(int n)
{
int b = 10;
static int* a;
a = new int[b];
if(n==0)
{
for(int k=0; k <b; k++)
a[k] = 0;
}
a[1]++;
cout < <a[1] < <endl;
}
主函数为:
void main()
{
MyClass mycls;
for(int k=0; k <b; k++)
mycls.Test(k);
}
运行后输出结果为:1 -8343564364 -8343564364
若将类函数中
static int* a;
a = new int[b];
修改为
static int a[10];
则可正常输出为 1, 2, 3
请问该如何解决该问题。应该怎样定义事先不知道具体大小的static数组?请指教!谢谢! 没分了,以后补上。:)