跪求大神帮我看下C++程序错在哪里编译通过了程序无法执行。程序是想用链表求出输入的两个集合的差集。

跪求大神帮我看下C++程序错在哪里编译通过了程序无法执行。程序是想用链表求出输入的两个集合的差集。struct data
{
char charr;
data*next;
};
#include<iostream>
using namespace std;
data* Delete(data*head,int i);
int main()
{
data s1,s2;
data*head=&s1,*tail=head;
cout<<"请输入第一个集合的元素,输入#结束"<<endl;
cin>>head->charr;
data*pp=head;
for(int i=0;pp->charr!='#';i++)
{
data*p=(data*)malloc(sizeof(data));
cin>>p->charr;
tail->next=p;
p->next=NULL;
tail=p;
pp=p;
}
data*head2=&s2,*tail2=head2;
cout<<"请输入第二个集合的元素,输入#结束"<<endl;
cin>>head2->charr;
data*pp2=head2;
for(int j=0;pp2->charr!='#';i++)
{
data*p2=(data*)malloc(sizeof(data));
cin>>p2->charr;
tail2->next=p2;
p2->next=NULL;
tail2=p2;
pp2=p2;
}

L1: int k=1;
for(data*i_1p=head;i_1p!=NULL;i_1p=i_1p->next,k++)
{
int m=1;
for(data*j_1p=head2;j_1p!=NULL;j_1p=j_1p->next,m++)
{
if(i_1p->charr==j_1p->charr)
{
Delete(head,k);
Delete(head2,m);
goto L1;
}
}
}
for(int k1=0;head!=NULL;k1++)
{
cout<<head->charr;
head=head->next;
}
for(int k2=0;head2!=NULL;k2++)
{
cout<<head2->charr;
head2=head2->next;
}
return 0;
}
data*Delete(data*head,int i)
{
if(i==1)
{
data*current=head;
head=head->next;
free(current);
}
else
{
data*previous=head;
int j=1;
while(j<i-1&&previous->next!=NULL)
{
previous=previous->next;
j++;
}
if(previous->next!=NULL)
{
data*current=previous->next;
previous->next=current->next;
free(current);
}
else cout<<"无第"<<i<<"个节点"<<endl;
}
return head

第1个回答  2014-12-18
把所有data的地方改为struct data。检查括号配对问题追问

我试试

为什么我的C++正确的代码也无法运行,那种在其他电脑上可以的在我电脑...
“CL.exe”是VC使用真正的编译器(编译程序),其路径在“VC根目录\/VC98\/Bin”下面, 你可以到相应的路径下找到这个应用程序。方法一:因此问题可以按照以下方法解决:打开vc界面 点击VC“TOOLS(工具)”—>“Option(选择)” —>“Directories(目录)”重新设置“Excutable Fils、Include Files、 Lib...

C++程序,为什么编译通过了,执行时却出现错误
编译通过是因为你没有语法问题,运行出错是你的程序有逻辑问题,空指针,内存漏洞等程序问题

c++ 链表,,求指导,程序崩溃,line:1044
考虑下在进入循环的第一次是否就有问题,因为循环里,并没有判断p是否为NULL,如果p为NULL,p->next在这里也会引起崩溃 看了你贴的代码,在构造函数里,构造链表的时候,while函数里,没有对new得到的node节点s的next设置为NULL.然后这个值是随机的,在遍历的时候,就会出现无法判断是否是结尾的情况.就如群殴...

为什么编译正确的c++程序在运行时会停止工作
编译只是保证没有语法错误,但是不能保证你的程序的算法没有错误,如果你的程序中有比较严重的Bug,如果说访问了系统保护的内存,出于保护,windows会中止你的程序,或是抛出一个异常,如果异常没有被捕获并加以处理,程序也会中止,当然,这时你也有机会用调试工具去debug。这种运行期的错误是需要程序员去...

c++程序的代码错误,请帮忙纠正以下并注解,还会出先这两个错误,求解
这个应该是你的VS出了问题,请重新启动你VS。如果你安装的是VS2008,请保证安装 SP1 补丁。3. 无法启动程序“。。。”。这是VS在提醒你你的工程没有编译出3.exe这个可执行程序用以调试。请先检查代码,检查编译环境,完成编译后,再进行调试。你这里,没有3.exe是无法进行调试的。

运行程序的时候出现C++错误怎么办
运行程序的时候出现C++错误这样的问题一般是因为DLL文件出错或者VC运行库没有安装导致的,解决方法 一、下载VC运行库进行安装修复,修复后再进行测试。二、以管理员身份运行命令提示符,打开开始菜单,搜索cmd。在命令提示符上单击右键,选择“以管理员身份运行”;在命令提示符中输入以下命令:for%iin(%...

C++,大佬们看下这里报错是为什么?可是这代码能AC啊?!
首先我们来看 include 的部分,我们一个一个来看,iostream 不用多说了,C++标准输入输出的头文件,包含了 C++输入输出流函数,也就是经典的 cin、cout。说到 cin、cout 多说两句,cin、cout 的开销要比 C 语言下的 scanf 和 printf 慢很多,很容易影响程序运行的性能。所以对于 acmer 来说,能用...

求助:为什么我编的C++程序在自己电脑上能正常运行,但编译后挂在后台linu...
除非是两台机器一模一样,操作系统也一样,编译系统也相同,这样的机器间代码才可以直接重用。你的程序出现异常:一、你要保证你执行的程序是在当前机器上编译通过的才可以 二、要注意机器的CPU类型:64位机和32位机的差异。三、详细检查、调试自己程序中的源代码,是不是存在BUG ...

运行一段程序C++ 显示有错误 那位大神能帮我解释下这是什么意思啊 (这 ...
编译,还是LINK : fatal error LNK1104: cannot open file "comct132.lib"的话,说明你没有文件comct132.lib。搜索一下你的磁盘有没有comct132.lib,没有的话下载一个或从别人那里拷贝一个,放到Visual Studio ->VC98->lib目录下,同样在工程下加上 设置 目录下 有个c++LINK,加上comct132.lib...

为什么我的c++程序不能运行,求大神解答
1、主要问题是死循环了,看while (num!=0) ,一旦输入num不0,那么循环就一直执行下去,没有跳出语句。2、其它代码还要看思路,反正很乱的样子。

相似回答