我的程序只打印 "ddddddddd" 而不是地图?

My program is only printing "ddddddddd" instead of the map?

我的代码在粘贴箱中,并将永久存在。我的程序的问题是,当我尝试加载它时,它只打印 dddddddddddd 好吗?试着帮我修一下。这应该打印出所有的线来形成地图。

int main() {

    TEST_LEVEL();    
    LOAD_LEVEL();

    return 0;

}


char  inttorow(int number);

//global
char * R1[81] ;
char * R2[81] ;
char * R3[81] ;
char * R4[81] ;
char * R5[81] ;
char * R6[81] ;
char * R7[81] ;
char * R8[81] ;
char * R9[81] ;
char * R10[81] ;
char * R11[81] ;
char * R12[81] ;
char * R13[81] ;
char * R14[81] ;
char * R15[81] ;
char * R16[81] ;
char * R17[81] ;
char * R18[81] ;
char * R19[81] ;
char * R20[81] ;
char * R21[81] ;
char * R22[81] ;
char * R23[81] ;
char * R24[81] ;
char * R25[81] ;
int character;
int spawn[2];
int door1[2];
int door2[2];
int door3[2];
int door4[2];


//maps
void TEST_LEVEL(){    

 *R1="################################################################################";
 *R2="#                                                                              #";
 *R3="#                                                                              #";
 *R4="#                                                                              #";
 *R5="#                                                                              #";
 *R6="#                                                                              #";
 *R7="#                                                                              #";
 *R8="#                                                                              #";
 *R9="#                                                                               #";
*R10="                                                                               #";
*R11="#                                                                               #";
*R12="#                                                                              #";
*R13="#                                                                              #";
*R14="#                                                                              #";
*R15="#                                                                              #";
*R16="#                                                                              #";
*R17="#                                                                              #";
*R18="#                                                                              #";
*R19="#                                                                              #";
*R20="#                                                                              #";
*R21="#                                                                              #";
*R22="#                                                                              #";
*R23="#                                                                              #";
*R24="#                                                                              #";
*R25="################################################################################";

 spawn[1] = 15;
 spawn[2] = 15;


return;


  }


//movement


//tools
void LOAD_LEVEL(){
  char * row[81];
  int i = 1;
while(i != 25){
  *row =  inttorow(i);
   printf("%s\n", row);
    i++;

}


return;

}


char  inttorow(int number){
   char * row[81];

    switch(number){

     case 1 :
        *row = R1;
        break;

        case 2 :
        *row = R2;
        break;
        case 3 :
        *row = R3;
        break;
        case 4 :
        *row = R4;
        break;
        case 5 :
        *row = R5;
        break;
        case 6 :
        *row = R6;
        break;
        case 7 :
        *row = R7;
        break;
        case 8 :
        *row = R8;
        break;
        case 9 :
        *row = R9;
        break;
        case 10 :
        *row = R10;
        break;
        case 11 :
        *row = R11;
        break;
        case 12 :
        *row = R12;
        break;
        case 13 :
        *row = R13;
        break;
        case 14 :
        *row = R14;
        break;
        case 15 :
        *row = R15;
        break;
        case 16 :
        *row = R16;
        break;
        case 17 :
        *row = R17;
        break;
        case 18 :
        *row = R18;
        break;
        case 19 :
        *row = R19;
        break;
        case 20 :
        *row = R20;
        break;
        case 21 :
        *row = R21;
        break;
       case 22 :
        *row = R22;
        break;
        case 23 :
        *row = R23;
        break;
        case 24 :
        *row = R24;
        break;
        case 25 :
        *row = R25;
        break;

    }

return row;
}

要么问题出在switch case部分,要么是函数调用结束后变量的浪费。尝试将它们制作成更小的数组并使用更多的循环。要打印,请通过索引使用 %c。

你坏了

int spawn[2];

通过这样索引:

spawn[1] = 15;
spawn[2] = 15;

此外,函数 char inttorow(int number) 正在尝试 return char ** 而不是 char 以及 return 值是局部变量。

char inttorow(int number){
    char * row[81];
    ...
    return row;
}

希望您已启用编译器警告。