【发布时间】:2016-05-14 09:12:26
【问题描述】:
我在我的主要功能中的开关的案例 4 中不断崩溃,无法修复它。
我会稍微解释一下代码,希望你们能帮助我:
初始化函数
void function1(char[]);
声明字符串数组
const char *my_array[] = {
"Array of strings one",
"Array of strings two",
"Array of strings three"};
在主函数中循环遍历字符串数组(这工作正常,它打印字符串数组)
int i;
for (i=0; i < 3; i++) {
printf("%s\n", my_array[i]);
}
switch函数中的代码(还在main函数中)
case 4:
function1(my_array);
break;
我已经测试过,之前的所有代码都可以正常工作,问题出在此处(在 main 函数之外):
void function1(char my_array[]) {
for (i=0; i < 3; i++) {
printf("%s\n", my_array[i]);
}
printf("\n");}
当我执行 switch 的 case 4 时,它崩溃了。
日志给出的 2 个警告:
警告:从不兼容的指针传递 'function1' 的参数 1 输入
警告:格式“%s”需要“char *”类型的参数,但参数 2 具有类型“int”[-Wformat=]
抱歉,如果解释有点不清楚,我尽我所能使它易于理解。
真的希望大家能帮帮我,谢谢!!
【问题讨论】:
-
你没有传递
char [],你传递的是char *[]或char **