新微赢技术网
标题:
[讨论]大家来看下
[打印本页]
作者:
深水海狗
时间:
2009-11-3 03:32
标题:
[讨论]大家来看下
#include<iostream.h>
typedef struct node
{
int music[5];
char name[10];
int i;
struct node *next;
};
void set(node *p)
{
p=new node;
node m1={{1,2,3,4,5},"小蜜蜂",1,NULL};
node *s1=new node;
s1=&m1;
p->next=s1;
node m2={{5,4,3,2,1},"遇见",2,NULL};
node *s2=new node;
s2=&m2;
s1->next=s2;
}
int length(node *p)
{
int n=0;
node *q=p->next;
while(q!=NULL)
{
n++;
q=q->next;
}
return n;
}
void display(node *p)
{
int n=length(p),i;
node *q=p->next;
cout<<"歌曲库显示\n";
for(i=1;i<=n;i++)
{
cout<<i<<'.'<<q->name<<endl;
q=q->next;
}
}
void main()
{
node hebe;
set(&hebe);
display(&hebe);
}
打击帮忙看下..编译没有问题..运行老是说我非法.谢了.........
作者:
温柔乡
时间:
2009-11-3 03:32
帮忙看下啊..看了那么多就是不留言..难道就这么难吗?
作者:
★海浪★
时间:
2009-11-3 03:32
void set(node *p)
{
p=new node;
//......
//p->next=s1;
}
int main()
{
node hehe;
set(&hebe);
}
p开始是指向hehe
而你又分配了node大小的空间让p不指向hehe,而指向heap space
这里p不指向hehe了,而你在上面set function部分又调用了p->next=s1; 这里p指向的部分(heap space)没有next
作者:
ジ↘夢衹戀
时间:
2009-11-3 03:32
#include<iostream.h>
typedef struct node
{
int music[5];
char name[10];
int i;
struct node *next;
};
void set(node *p)
{
node *s=new node;
s=p;
s->next=NULL;
node m1={{1,2,3,4,5},"小蜜蜂",1,NULL};
node *s1=new node;
s1=&m1;
s->next=s1;
node m2={{5,4,3,2,1},"遇见",2,NULL};
node *s2=new node;
s2=&m2;
s1->next=s2;
}
int length(node *p)
{
int n=0;
node *q=p->next;
while(q!=NULL)
{
n++;
q=q->next;
}
return n;
}
void display(node *p)
{
int n=length(p),a;
node *q=p->next;
cout<<"歌曲库显示\n";
for(a=1;a<=n;a++)
{
cout<<a<<'.'<<q->name<<endl;
q=q->next;
}
}
void main()
{
node hebe;
set(&hebe);
display(&hebe);
}
但是这样还是有云来的那个问题...
欢迎光临 新微赢技术网 (http://bbs.weiying.cn/)
Powered by Discuz! X3.2