title: microcontroller fails at malloc
body: <p>I am writing a function on a 32-bit cortex m4 microcontroller.
  The function has to be able to multiply matrices of different sizes, which I cannot predict. So i Have to use a malloc...</p>
  
  <p>But I don't understand why my mc always goes into default handler interrupt when it executes following line:</p>
  
  <pre><code>double *output2=NULL;
  output2 = malloc(3 *1* sizeof(double *));
  </code></pre>
  
  <p>Is this mc not able to handle this type of operations?
  While this works perfectly fine on my laptop!</p>
  
  <p>**EDIT*</p>
  
  <p>Here by some more code (which still needs to be modified...):
  Well all malocs anywhere fail. I cannot assign any value to a "malloced" array.</p>
  
  <pre><code>int main (void)
  {
  
      /*some stuff*/
  
      float transFRotMatrix[3][3]={0}; //array gets modified by other functions
      float sunMeasurements[3][1] = {{1},{2},{3}}; //test values
  
          multiplyMatrices( &amp;transFRotMatrix[0][0],3, 3, &amp;sunMeasurements[0][0], 3, 1, *orbitalSunVector);
  
      /*some stuff*/
  }
  
  void multiplyMatrices(float *transposedMatrix, int height1, int width1, float *iSunVector,int height2, int width2, float *orbitalSunVector)
  {
  
      int y=0;
      int x = 0;
      int row=0;
      int column =0;
      int k=0;
      int k2 = 0;
      float result = 0;
  
      int i=0;
      int j=0;
      int t=0;
  
      float rotationMatrix[3][3]={0};
  
      i=0;
      k=0;
      k2 = 0;
  
  
      if(width1 != height2)
      {
          printf("unmatching matrices, error.\n\n");
          return;
      }
  
      float *output2;
  
      output2 = malloc(3 *1* sizeof(float *)); //&lt;-----ERROR
  
  
      while(k&lt;width1) //aantal rijen 1ste matrix
      {
          for(j=0;j&lt;height2;j++) //aantal rijen 2de matrix
          {
              result += (*((transposedMatrix+k*width1)+j)) * (*((iSunVector+j*width2)+k2));  //1ste var:aantal kolommen 2de matrix  --2de variabele na de plus = aantal kolommen 2de matrix
              //printf("%f * %f\t + ", (*((transposedMatrix+k*width1)+j)), (*((iSunVector+j*width2)+k2)));
          }
  
          output2[k*3 +k2] = result;  //&lt;-----FAILS HERE
  
  
          k2++;
          x++;
          column++;
  
          if(x==width2)
          {
              k2=0;
              x=0;
              column=0;
              row++;
              y++;
              k++;
  
          }
          result = 0;
  
      }
  
      for(i=0;i&lt;height1;i++)
      {
          for(j=0;j&lt;width2;j++)
          {
               orbitalSunVector[j * height1 + i] = output2[i*3 +j];
          }
      }
      free(output2);
  }
  </code></pre>