【发布时间】:2015-02-21 19:18:24
【问题描述】:
输入 lakenum 是 1-5 的整数。给定该整数,该函数应该分配一个名称并将字符串数组返回给主函数,但是我得到了指针错误:
错误:return 从没有强制转换的指针中生成整数
错误:函数返回局部变量的地址
我使用printf ("%s", lakenamer(lakenum));调用函数
int lakenamer(lakenum) {
char lname[20] = "0";
if (lakenum == 1) {
strncpy(lname, "Ontario", 20);
} else if (lakenum == 2) {
strncpy(lname, "Erie", 20);
} else if (lakenum == 3) {
strncpy(lname, "Huron", 20);
} else if (lakenum == 4) {
strncpy(lname, "Muskoka", 20);
} else if (lakenum == 5) {
strncpy(lname, "Simcoe", 20);
}
printf("%s",lname);
return (lname);
}
【问题讨论】:
-
strncpy是个坏主意,您应该改用strcpy或snprintf。 -
@ThisGuy 如果任何答案对你有帮助,你应该接受并投票赞成。
-
我不能投票,没有足够的信用,但我最终只是改变了它,以便调用该函数,并打印数据而不是将数据返回给主函数,这更容易
标签: c arrays string variables char