title: C++ forbids variable-size array
body: <p>I am using some existing code that someone else has written, and I cannot get it to compile (limited C experience here but I am trying to learn!).</p>
  
  <p><strong>utilities.cc</strong></p>
  
  <pre><code>#include "utilities.h"
  FILE *open_file(char *filename, const char*extension, const char *access)
  {
    char string[MAX_STR_LEN];
    FILE *strm = NULL;
  
    if(filename[0]=='\0')
     {
        printf("\n INPUT FILENAME (%s) &gt; ",access);
        fgets(string,MAX_STR_LEN,stdin);
        sscanf(string,"%s",filename);
        printf(" FILE %s opened \n", filename);
     }
     int len=strlen(filename);
  
     if( len + strlen(extension) &gt;= MAX_STR_LEN)
     {
        printf("\n ERROR: String Length  of %s.%s Exceeds Maximum",
                filename, extension);
        return(NULL);
     } 
  
     // char *filename1 = new(char[len+strlen(extension)+1]);
  
     const int filenameLength = len+strlen(extension)+1;
     char *filename1 = new(char[filenameLength]);
  
     strcpy(filename1,filename); // temp filename for appending extension
  
     /* check if file name has .extension    */
     /* if it does not, add .extension to it */
     int i=len-1;
     while(i &gt; 0 &amp;&amp; filename[i--] != '.');
     //   printf("\n Comparing %s to %s", extension, filename+i+1);
     if(strcmp(extension, filename+i+1)  )
        strcat(filename1,extension);
     if( (strm = fopen(filename1, access) ) == NULL )
     {
        printf("\n ERROR OPENING FILE %s (mode %s)", filename1,access);
     }
     delete(filename1);
     return(strm);
  }
  </code></pre>
  
  <p>Here is the error.</p>
  
  <pre><code>Compiling utilities.cc ...
  src/utilities.cc: In function ‘FILE* open_file(char*, const char*, const char*)’:
  src/utilities.cc:251: error: ISO C++ forbids variable-size array
  gmake: *** [/home/landon/geant4/work/tmp/Linux-g++/exampleN01/utilities.o] Error 1
  </code></pre>
  
  <p>The error on line 251 refers to</p>
  
  <pre><code>char *filename1 = new(char[filenameLength]);
  </code></pre>
  
  <p>If you need any additional information let me know please.</p>