title: Why (unsigned char *) is used before the key term new in dynamic allocation
body: <p>I have encountered <code>charImage = (unsigned char *) new unsigned char [M*N]</code> in some tutorials for dynamically memory allocation of the 2D charImage. M and N are the row and columns numbers of the image.</p>
  
  <p><strong>charImage</strong> is declared as an unsigned char pointer at the beginning of the program.</p>
  
  <p>What does the (unsigned char *) before <strong>'new'</strong> mean?</p>
  
  <p>Can somebody explain this?</p>