我的代码在粘贴箱上,并将永久存在。我的程序的问题是,当我尝试加载它时,只需打印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;
}
答案 0 :(得分:0)
问题出在switch case部分,或者是函数调用结束后变量的浪费。尝试将它们变成更小的数组并使用更多来进行循环。要打印,请使用索引来使用%c。
答案 1 :(得分:0)
你破了
int spawn[2];
通过索引:
spawn[1] = 15;
spawn[2] = 15;
此外,函数char inttorow(int number)
正在尝试返回char **
而不是char
以及返回值是本地变量。
char inttorow(int number){
char * row[81];
...
return row;
}
我希望您启用编译器警告。