#include <iostream>
using namespace std;
const int SIZE = 1;
struct Arry
{
int n[SIZE];
int add;
int *ptr;
};
Arry init( Arry &my_arry );
Arry increase( Arry &my_arry );
int main()
{
Arry inc;
Arry *arry_ptr = NULL;
inc = init( inc );
cout << sizeof inc.n << '\n';
inc = increase( inc );
cout << sizeof inc.n << '\n';
inc = increase( inc );
cout << sizeof inc.n << '\n';
return 0;
}
Arry init( Arry &my_arry )
{
my_arry.n[0] = 0;
my_arry.add = 1;
my_arry.ptr = 0;
return my_arry;
}
Arry increase( Arry &my_arry )
{
if ( !my_arry.add && my_arry.add > 1 ) my_arry.add = 1;
const int LIMIT = 80;
static int incr = SIZE;
int *p = 0;
p = &my_arry.n[0];
if ( incr >= LIMIT ) incr = SIZE;
incr += my_arry.add;
p = new int[incr];
for( int i = 0; i < incr; i++ )
{
my_arry.ptr = p;
p++;
my_arry.ptr++;
}
my_arry.ptr = p;
p = 0;
delete [] p;
return my_arry;
}
最終更新:2013年10月24日 06:31