Home Forums C Programming Array Problem

Viewing 1 reply thread
  • Author
    Posts
    • #2241
      FedericDeLoitte
      Participant

      I made a function containing an array that is declared as so: factor[ g + 1] and when the computer runs it, results in this: factor[-1]. Why?
      Heres my source code:

      bool PerfectCalculator(int g)
      {
      bool x;
      int i, factor[g + 1], sum;

      x = false;
      sum = 0;

      for (i=2; i {
      if (g % i == 0) {
      factor = i;
      }
      else {
      factor
      = 0;
      }

      }

      for (i=0; i {
      sum += factor
      ;
      }

      if (sum == g) {
      x = true;
      }
      else {
      x = false;
      }

      return x;

      }

    • #3639
      GWILouisaxwzkla
      Participant

      Unless theres a new C++ standard , you cannot declare arrays of an arbitrary length ( the length must be declared as a constant so the compiler knows how to set up the function’s stack frame at compile time ). So you can’t do this ( I’m suprised this compiled, what compiler are you using ?):

      If you want a arbitrary length array you have to allocate it at run time , like:

      make sure to check allocation of this statement and delete the memory when your done with it ( by the end of the function call )………

Viewing 1 reply thread
  • The forum ‘C Programming’ is closed to new topics and replies.