|
動的に確保した配列を静的に保持することはできるんでしょうか?
最初から静的に確保した配列なら,
以下のようなプログラムで func() で array[] に値を代入するのは
1回だけになり,その値は func() を抜けても保持されています.
配列の大きさがあらかじめ分かっていない配列に対して,
このような処理を行いたいのです.
func() の中で int *array = new int[n]; として,
func() を抜けても array[] の値が保持されるようにすることは可能なんでしょうか?
よろしくお願いします.
#include <iostream>
using namespace std;
void func(int a, int *f)
{
static int array[5];
int i;
static int flag=0;
if(flag==0) {
flag=1;
for(i=0; i<5; i++) {
array[i] = i;
}
}
for(i=0; i<5; i++) {
f[i] = a*array[i];
}
}
int main(void)
{
int array[5], a[]={2,4,6,8,10};
int i, j;
for(i=0; i<5; i++) {
func(a[i], array);
for(j=0; j<5; j++) {
cout << array[j] << endl;
}
}
return 0;
}
|