马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 猪猪虾 于 2020-11-20 21:52 编辑
第15行程序报错,显示 invalid conversion from 'char' to char *
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
//**************************************************************************
//实现一个洗牌程序。所谓洗牌程序,就是将所有的扑克牌放入一个数组中,
//要求把数组内的扑克牌顺序随机打乱,然后输出
int number_of_game = 3;
char get_name(int num);
int main()
{
int i;
char *name = NULL;
name = get_name(number_of_game);
for(i = 0; i < number_of_game; i++)
{
printf("the %d member's name is: %s'",i,name[i]);
}
free(name);
}
char get_name(int num)
{
char *ptr = NULL;
int i;
ptr = (char *)malloc(num *sizeof(char));; //*name[3];这种需要用到动态存储
for(i = 0;i <num;i++)
{
printf("enter %d member's name :",i);
fgets(ptr[i],100,stdin);
printf("the member's name is: %s'",ptr[i]);
}
return ptr;
}
本帖最后由 jackz007 于 2020-11-20 23:57 编辑
函数定义: 改为: 注意,第 9 行的函数声明也要同时改了。
为什么要把 main() 放在最前面,我通常都是放到最后的,因为,任何函数只要定义位置出现在调用位置之前,就不用进行声明。在本例中,楼主可以试试把 char * get_name(int num) 的函数定义从目前文件的最后位置提前到第 9 行声明这个函数的位置,这样,就不再需要像第 9 行那样的函数声明了。
|