int main()
{
int e[]={3,5,1,2,-2,-1,7,8,0,9};
int *f;
int fsize;
f=smaller_than(e,10,fsize,5);
}
我有一个功能:
int * smaller_than(const int list[],const int SIZE,int& count,const int THRESHOLD=0)
{
count = 0;
for (int i = 0; i < SIZE; i++)
{
if (list[i] < THRESHOLD)
{
count++;
}
}
int newArray[count];
int *p = newArray;
int j = 0;
for (int i = 0; i < SIZE; i++)
{
if (list[i] < THRESHOLD)
{
newArray[j] = list[i];
j++;
}
}
return p;
使用单独的打印功能无法正确打印,它打印3 32767 229810164 1 -1 0
,但是当我复制其他人所做的时:
int * newArray = new int[count];
int j = 0;
for (int i = 0; i < SIZE; i++)
{
if (list[i] < THRESHOLD)
{
newArray[j] = list[i];
j++;
}
}
return newArray;
}
这适用于并打印3 1 2 -2 -1 0
。我不明白,为什么我的工作不正常,使用“new”关键字有什么不同?