Обосновываю своё утверждение:
char cFileBase[]="1234567"
создаёт строку длиной 8 символов. Это почти то же самое, что
char* cFileBase = new char[length("1234567"

+1];
strcpy(cFileBase, "1234567"

;
если сделать
strcpy(cFileBase, "12345678"

, вы вылезете за границы cFileBase и
повредите первый байт следующей структуры в памяти.