一道c++题目 搞不懂错误:error C2601: 'DeleteList' : local function definitions are illegal。

#include<iostream.h>
typedef int ElemType;
struct LNode
{
ElemType data;
LNode* next;
};
void main()
{
LNode a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;
cin>>a.data>>b.data>>c.data>>d.data>>e.data>>f.data>>g.data;
a.next=&b;
b.next=&c;
c.next=&d;
d.next=&e;
e.next=&f;
f.next=&g;
g.next=NULL;
h.next=&i;
i.next=&j;
j.next=&k;
k.next=&l;
l.next=&m;
m.next=&n;
n.next=&o;
o.next=&p;
p.next=&q;
LNode* s=&a;
LNode* t=&h;
bool DeleteList(LNode* &HL,ElemType& item,int pos)
{
if(HL==NULL)
{
cout<<"单链表为空,删除操作无效"<<endl;
return flase;
}
if(pos<-1)
{
cout<<"pos值无效!"<<endl;
return flase;
}
LNode* cp=HL;
LNode* ap=NULL;
if(pos==0)
{
while(cp!=NULL)
{
if(item==cp->data)
break;
else
{
ap=cp;
cp=->next;
}
}
}
}
for(int y=0;y<10;y++)
{
s=&a;
for(int Z=0;Z<7;Z++)
{
if((s->data)==(t->data))
{
DeleteList(s,t.data,0);
}
s=s->next;
}
t=t->next;
}
s=&a;
while(s!=NULL)
{
cout<<s->data<<" ";
}
cout<<endl;
}

error C2228: left of '.data' must have class/struct/union type
执行 cl.exe 时出错.

第1个回答  2013-03-19
警告的意思是:本地定义函数是非法的:在函数内部定义具名函数在C里边被认为非法。C++里可以定义匿名函数(lambda相关)
第二个错误估计是第一个引起的,你这代码乱的可以啊。
第2个回答  2013-03-19
if((s->data)==(t->data))
{
DeleteList(s,t.data,0);
}
这儿t是指针吧追问

但是指针在某种情况下,也可以这样用的哦~

追答

没见过

第3个回答  2013-03-19
DeleteList(s,t.data,0);

DeleteList(s,t->data,0);

你忘了t是指针

error C2601: 'main' : local function definitions are illegal_百度知...
insert那个函数定义少了个结束 }

...C2601:'_GetBaseMessageMap' : local function definitions are ill...
消息处理函数定义错误。自习检查一下呢,可以到ClassView视图里面检查一下定义的对不对。

C++程序报错[Error] call of overloaded 'ListDelete(LNode*&, int&...
从错误提示上看ListDelete的第一个参数需要LNode*& 这是一个指针的引用;而你传的是List &L 这只是一个对象的引用吧 ?那么在函数 内部 L只是一个对象,你这样传参就会报错了。

在VC++6.0中,总是出现一个叫error spawning c1.exe的错误,怎么回事呢...
fatal error C1189: #error : Please use the \/MD switch for _AFXDLL builds就这样改:C\/C++->Code Generation->Multithread DLL (即实现\/MD选项)Visual C++ Error MessagesThis page contains a listing of "difficult to diagnose" error messages and possible fixes. I haven't taught a programming class...

C编程出错 syntax error : identifier 'Initlist' syntax error...
在Initlist声明之前的那个Status是什么,没有提前做过声明,所以会报错,估计你是有些头文件没有包含。先修改第一个错误,然后重新编译,看看还有什么错误,不要试图把目前错误列表中的所有问题一次性解决,它们很多彼此之间是相互关联的,修改了一个错误,可能连带着把其他错误也就改好了。

C++:error C2470: “d”: 看起来像函数定义,但没有参数列表;跳过明显...
void out(jonse *h;int i;int d)改 void out(jonse *h,int i,int d)这么明显的错误啊

关于C++的一道编程题,请高手帮忙阿
因为没有学过文件,所以不太看得懂题,还请高手指点一下文本编辑器要求:(1)编辑文本;(2)保存、打开指定位置的文本文件;(3)具有输入输出界面。... 因为没有学过文件,所以不太看得懂题,还请高手指点一下 文本编辑器要求:(1)编辑文本;(2)保存、打开指定位置的文本文件;(3)具有输入输出界面。 展开 ...

...warning C4101: 'i' : unreferenced local variable
这个是警告,错误是你有两个未解释的符号,可能缺少lib或自己定义的函数没有定义

VS 编译提示 :error C2065: 'i' : undeclared identifier
这个是你程序的开头那段,对吧?CServerListManager::~CServerListManager(){ int i; \/\/我已经移动到这里了啊~INT_PTR nCount=m_PtrArrayType.GetCount();for (\/*把这个int删掉*\/ i=0;i<nCount;i++) delete m_PtrArrayType[i]; \/\/这里for循环里的int i,去掉int,把i的声明放到上面去...

C++ error C2143:syntax error : missing ';' before 'string'
你的类定义在student.h 中。把那个文件也发出来。。。这样才好帮你分析。

相似回答