コード帳 > C++ > LILIN

  1. #include <iostream>
  2. using namespace std;
  3.  
  4. const int SIZE = 1;
  5.  
  6. struct Arry
  7. {
  8. int n[SIZE];
  9. int add;
  10. int *ptr;
  11. };
  12.  
  13. Arry init( Arry &my_arry );
  14. Arry increase( Arry &my_arry );
  15.  
  16.  
  17. int main()
  18. {
  19. Arry inc;
  20. Arry *arry_ptr = NULL;
  21.  
  22. inc = init( inc );
  23. cout << sizeof inc.n << '\n';
  24.  
  25. inc = increase( inc );
  26. cout << sizeof inc.n << '\n';
  27.  
  28. inc = increase( inc );
  29. cout << sizeof inc.n << '\n';
  30.  
  31. return 0;
  32. }
  33.  
  34. Arry init( Arry &my_arry )
  35. {
  36. my_arry.n[0] = 0;
  37. my_arry.add = 1;
  38. my_arry.ptr = 0;
  39.  
  40. return my_arry;
  41. }
  42. Arry increase( Arry &my_arry )
  43. {
  44. if ( !my_arry.add && my_arry.add > 1 ) my_arry.add = 1;
  45. const int LIMIT = 80;
  46. static int incr = SIZE;
  47. int *p = 0;
  48.  
  49. p = &my_arry.n[0];
  50.  
  51. if ( incr >= LIMIT ) incr = SIZE;
  52.  
  53. incr += my_arry.add;
  54. p = new int[incr];
  55.  
  56. for( int i = 0; i < incr; i++ )
  57. {
  58. my_arry.ptr = p;
  59. p++;
  60. my_arry.ptr++;
  61. }
  62. my_arry.ptr = p;
  63.  
  64. p = 0;
  65. delete [] p;
  66.  
  67. return my_arry;
  68. }

タグ:

+ タグ編集
  • タグ:
最終更新:2013年10月24日 06:31