首先,抱歉英语不好 当我使用程序并编译它时,它得到了消息:
错误:无效转换为'char'到'char *'[-fpermissive]
该错误究竟是什么意思?
这是我的程序
void AddElement(TabCharName*T, char X[20])
{
if((*T).neff < 700)
{
(*T).neff++;
(*T).name[(*T).neff]=X;
}
}
这是主要的
int main()
{
//Declare
TabCharName MyTab;
char X[20];
//Algorithm
createNameColl(&MyTab);
printf("Insert Name: ");
scanf("%s", &X);
while(X != "a")
{
AddElement(&MyTab, X);
printf("\nInsert Name: ");
scanf("%s", &X);
}
表示数据类型
typedef struct
{
char name[20];
int neff;
} TabCharName;
并且错误在线
(*T).name[(*T).neff]=X;
答案 0 :(得分:1)
变化:
scanf("%s", &X);
与
scanf("%s", X);
记住一个数组已经是一个指针,而在addElement函数中就是一行:
(*T).name[(*T).neff]=X;
应替换为
strcpy((*T).name[(*T).neff], X);
假设你的结构有一个成员&#34; char ** name&#34;
另外作为建议尝试使用foo-&gt; bar而不是(* foo).bar,因为更容易理解。