许久没用C4了,最近电脑不在身边,写个链表,出现了如图的问题
c4droid吧
全部回复
仅看楼主
level 12
许久没用C4了,最近电脑不在身边,写个链表,出现了如图的问题,这个在VS应该是没问题的,哪位大佬知道怎么解决以及原因
2018年07月21日 07点07分 1
level 12
才发现源码贴不出来,会被吞
2018年07月21日 07点07分 5
level 12
struct list
{
int data;
list *next;
};
void a(list *p)
{
p->data=1;
p->next=NULL;
}
int main(void)
{
list l; l=(list*)malloc(1*sizeof(list));
a(l);
if(l)
{
printf("1");
}
}
2018年07月21日 08点07分 6
level 12
另外,百度上说的不能编译结构体是因为没有插件,但没有明说是什么,GCC和SDL都有了,QT应该没关系,资源贴貌似也就这几个插件
2018年07月21日 08点07分 7
level 12
如果是c++语法,那应该把后缀改为cpp就能解决,但是不行,而百度上的也是类似的这种语法(虽然可能不正确)
2018年07月21日 10点07分 10
c4droid不是以后缀名来区分c或c++,需要你在设置里设置编译器用gcc或者g++
2018年07月21日 10点07分
@一周休七日 换编译器试过了,三个都会报错
2018年07月21日 10点07分
@木大博士🌐 那是因为你的代码还有别的地方错
2018年07月21日 10点07分
@一周休七日 but~那里出错了呢
2018年07月21日 10点07分
level 12
这是G++编译器的报错
/data/user/0/com.n0n3m4.droidc/files/temp.c: In function 'int main()':
/data/user/0/com.n0n3m4.droidc/files/temp.c:15:40: error: no match for 'operator=' (operand types are 'list' and 'list*')
list l; l=(list*)malloc(1*sizeof(list));
^
compilation terminated due to -Wfatal-errors.
2018年07月21日 10点07分 11
这里的报错指向分配内存那,不过c++兼容c,malloc不应该也是可以的吗
2018年07月21日 10点07分
2018年07月21日 10点07分
而且用new来分配内存也是同样的报错
2018年07月21日 10点07分
l=new list;
2018年07月21日 10点07分
level 12
或许你是对的,但是用struct指明后,出现了这种情况
2018年07月21日 11点07分 12
@一周休七日 已经改好了,你是对的,但是我很奇怪,我用VS的时候,基本不加上struct,也从来没有报错,难道VS这也会自动补全?
2018年07月21日 11点07分
@木大博士🌐 那是c++语法
2018年07月21日 11点07分
@一周休七日 也就是说不加上struct是不严谨的,但是c++允许这样,而c不允许?
2018年07月21日 11点07分
level 3
win C和Linux C有的地方不一样
2018年07月21日 22点07分 14
1