title: Trouble with allocating a variable to an array element
body: <p>So I am currently writing a function that can output data to an array ready for export to text. Function works fine when collecting variables but an getting the &quot;Thread 1: EXC_BAD_ACCESS (code=1, address=0x0)&quot; error within Xcode and don't know how to debug this. I have tried using calloc to assign memory to the array and using address locations but am still getting similar error messages and using address locations just don't work.</p>
  <p>Has anyone got any suggestions for how I can solve this? The error code is showing itself on the first line of the for loop and this function is running as part of a larger function.</p>
  <pre><code>void LamVelProf(double dP, double L, double d, double mu)
  {
      double *r = malloc(sizeof(r)); //Point radius from centreline
      double *R = malloc(sizeof(R)); //Absolute pipe radius
      double *vx = malloc(sizeof(vx));
      double *gvx = malloc(sizeof(gvx));
      double *offset = malloc(sizeof(offset));
      
      double **profile[7500][4];
      
      **profile = calloc((7500*4), sizeof(double));
      //double **profile = calloc((7500*4), sizeof(double));
      int *i = malloc(sizeof(i));
      
      *R = d/2; //Setting the boundary condition
      *offset = 0.001;
      *i = 0;
      
      for(*r = 0; *r &lt; (*R + (*offset/2)); *r = (*r)+(*offset))
      {
          **profile[*i][0] = *r;
          LamVelProCalc(dP, L, d, mu, *r, vx);
          **profile[*i][1] = *vx;
          LamGenProCalc(*r, d, gvx);
          **profile[*i][2] = *gvx;//Results from general profile
          **profile[*i][3] = *i+1;
          
          ++*i; //Increasing count by 1
      }
      printf(&quot;%i rows generated\n&quot;, *i);
      
      free(r);
      free(R);
      free(offset);
      
      int *row = malloc(sizeof(row));
      int *col = malloc(sizeof(col));
      
      for(*row = 0; *row &lt; *i + 1; *row = *row + 1)
      {
          for(*col = 0; *col &lt; 4; *col = *col + 1)
          {
              printf(&quot;%f&quot;, **profile[*row][*col]);
              
              if(*col == 3)
              {
                  printf(&quot;\n&quot;);
              }else{
                  printf(&quot;\t&quot;);
              }
          }
      }
  }
  </code></pre>