سلام به همه دوستان
راستش این ترم ساختمان داده دارم همراه با استادی که ویندوزه اش اکس پی اه و کامپایبرش برلند و توربو سی پلاس
البته تا این جلسه همه چی خوب و من کدهای که می گفت را با اضافه کردن int main و return 0 تو ++g کامپایل می کردم
تا این جلسه که کد زیر را بهمون داد و من هرچه تلاش کردم نفهمیدم مشکل اش چیه، البته با بکمی تحقیق فهمیدم که لینوکس conio.h نداره
با اینکه کمکی استایلش را خراب می کنه ولی اگه بیخیال اون بشیم. به همه توابع ای که اولش str و gets این ارور را می ده
invalid conversion from 'unsigned char*' to 'char*' [-fpermissive]|
می دونم کد طولانی اه ولی نمی دونم چرا یک حسی بهم میگه مثل و int main با یک سری تغیرات جزئی همه چی درست می شه
ویرایش:
در کنار اون ارور این ارور هم می ده
initializing argument 1 of 'char* strcpy(char*, const char*)
سویچ -fpermissive هم امتحان کردم جواب نداد
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <process.h>
#include <stdlib.h>
#define NULL 0
#define FALSE 0
#define TRUE 1
typedef struct n{
unsigned char value[20];
n *rptr;
} node;
int main(void)
{
node *create_primary_list(void);
node *addfirst(node *lst,unsigned char *);
unsigned char input[20];
node *list=NULL,*t=NULL;
unsigned char chk_exit=FALSE;
clrscr();
if((list=create_primary_list())==NULL)
{
printf("Error creating primary linked list\a\n\0");
exit(1);
}
do
{
strcpy(input,"\0");
printf("Enter Text TO Add To First Of List : \0");
gets(input);
if(strcmpi(input,"Quit\0")!=0)
{
if((list=addfirst(list,input))==NULL)
{
printf("Error Ading To Primary Linked List\a\n\0");
exit(1);
}
}
else
chk_exit=TRUE;
}while(!chk_exit);
t=list;
clrscr();
while(t!=NULL)
{
printf("%s\n\0",t->value);
t=t->rptr;
}
return 0;
}
node *create_primary_list(void)
{
unsigned char str_ar[10][20]={"Windows\0",
"Windows 95\0",
"Turobo Pascal 6\0",
"Borland C++\0",
"Visual C++\0",
"MicoSoft Word\0",
"Visual Basic\0",
"Delphi\0",
"Borland Pascal\0",
"Borland Delphi\0"
};
node *lst=NULL,*cur=NULL,*t=NULL;
unsigned char i;
for(i=0;i<10;i++)
if(lst==NULL)
{
if((cur= new node)==NULL)
return(NULL);
lst=cur;
cur->rptr=NULL;
strcpy(cur->value,str_ar[i]);
}
else
{
if((t=new node)==NULL)
return(NULL);
t->rptr=NULL;
cur->rptr=t;
cur=t;
strcpy(cur->value,str_ar[i]);
}
return(lst);
}
node *addfirst(node *lst,unsigned char *s)
{
node *t=NULL;
if(lst==NULL)
{
if((lst=new node)==NULL)
return(NULL);
lst->rptr=NULL;
strcpy(lst->value,s);
}
else
{
if((t=new node)==NULL)
return(NULL);
t->rptr=lst;
strcpy(t->value,s);
lst=t;
}
return(lst);
}