为什么输出所说的可变大小可能无法初始化?

 char letM[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
 int nr;
 printf("enter a number between 7 and 15\n");
 scanf("%d", &nr);
 for (int j = 0; j<=nr-5; j++){
   char letter[j] = letM[rand()%26+1];
   printf("%c", letter);
 }

此代码应为图章nr-5字母,但在我运行它时,输出会显示错误:可变大小的对象可能未初始化