您的位置:首页 > 其它

建立简单的链表 节点是结构体

2009-10-27 22:34 295 查看
#include <iostream>
using namespace std;

#include <fstream>
#include <string>

//-----------------建立节点-------------
typedef struct node
{
char* name;
node* next;

}NODE,HEAD;
//-------------建立链表------------------
void main()
{
HEAD a;
NODE b[5];

char c[2];
a.next=&(b[0]);//-----指针赋值必须为地址,所以必须加 “& 取地址运算符”

for(int i=0;i<5;i++)
{
cout<<" i值: "<<i<<endl ;
//itoa(i,c,10);// --------0 转化为字符时一个 奇怪的箭头字符?
itoa((i+10),c,10);//------不是i的原因,那是哪儿ne?
b[i].name=strcat(c,"jiangtao");
cout<<b[i].name<<"  ";

}

}
/*
i值: 0
10jiL.   i值: 1
11jiangtao   i值: 2
12jiangtao   i值: 3
13jiangtao   i值: 4
14jiangtao  Press any key to continue
*/


输出结果如下:
i值: 0
10jiL &+.   i值: 1       //========为什么会出现乱码呢???由于strcat()函数的意义是把字串2添加到字串1,而字串1不够长
11jiangtao   i值: 2
12jiangtao   i值: 3
13jiangtao   i值: 4
14jiangtao  Press any key to continue

 

 

评价:

这个程序写的超级菜鸟,又是节点数组,又是链表,都不知道在干什么?唉,长时间不处理链表,连动态分配内存都忘了。

当然new动态分配的内存,必须用delete 进行释放。

用  malloc 动态分配的内存,必须用free 进行释放。

不要忘了,对指针赋值NULL,防止成为野指针。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  include delete struct null c