这个C++错在哪里啊

yyleah 2010-01-09 03:28:16
#include <iostream>
#include <iomanip>
#include <string>

using namespace std;

struct friendT
{ string name;
string phone;
string post;
int year;
int month;
int day;
};

struct lkT
{ friendT data;
lkT *next;
};



void main()
{
friendT friends;
lkT *head, *p, *rear;

head = new lkT; rear = new lkT;

p = new lkT;
friends.name = "LiYi"; friends.phone = "12387400"; friends.post = "200240";
friends.year = 1990; friends.month = 1; friends.day = 1;
p->data = friends;
rear->next = p; rear = p;

p = new lkT;
friends.name = "Lier"; friends.phone = "54741414"; friends.post = "200240";
friends.year = 1989; friends.month = 12; friends.day = 9;
rear->next = p; rear = p;

p = new lkT;
friends.name = "ZhangLiang"; friends.phone = "46328821"; friends.post = "200240";
friends.year = 1990; friends.month = 7; friends.day = 7;
rear->next = p; rear = p;

p = new lkT;
friends.name = "ZhangJiao"; friends.phone = "23001031"; friends.post = "100000";
friends.year = 1989; friends.month = 11; friends.day = 11;
rear->next = p; rear = p;

p = new lkT;
friends.name = "ZhangZhiDong"; friends.phone = "12345643"; friends.post = "200000";
friends.year = 1989; friends.month = 4; friends.day = 1;
rear->next = p; rear = p;

p = new lkT;
friends.name = "LinKen"; friends.phone = "12812818"; friends.post = "300000";
friends.year = 1989; friends.month = 4; friends.day = 5;
rear->next = p; rear = p;

p = new lkT;
friends.name = "ZuoYou"; friends.phone = "52013140"; friends.post = "100000";
friends.year = 1989; friends.month = 10; friends.day = 1;
rear->next = p; rear = p;

p = new lkT;
friends.name = "LongKui"; friends.phone = "10254102"; friends.post = "200240";
friends.year = 1990; friends.month = 7; friends.day = 29;
rear->next = p; rear = p;

p = new lkT;
friends.name = "JiangMing"; friends.phone = "44052422"; friends.post = "200000";
friends.year = 1989; friends.month = 4; friends.day = 4;
rear->next = p; rear = p;

p = new lkT;
friends.name = "JingTian"; friends.phone = "54515171"; friends.post = "200000";
friends.year = 1990; friends.month = 4; friends.day = 1;
rear->next = p; rear = p;

p = new lkT;
friends.name = "GongAn"; friends.phone = "77714756"; friends.post = "100000";
friends.year = 1990; friends.month = 5; friends.day = 9;
rear->next = p; rear = p;

p = new lkT;
friends.name = "GangYi"; friends.phone = "54745815"; friends.post = "300000";
friends.year = 1989; friends.month = 8; friends.day = 8;
rear->next = p; rear = p;

p = new lkT;
friends.name = "HongKui"; friends.phone = "44471741"; friends.post = "200240";
friends.year = 1990; friends.month = 7; friends.day = 29;
rear->next = p; rear = p;

p = new lkT;
friends.name = "GuangGang"; friends.phone = "55478155"; friends.post = "400000";
friends.year = 1989; friends.month = 4; friends.day = 1;
rear->next = p; rear = p;

p = new lkT;
friends.name = "LingEr"; friends.phone = "25412623"; friends.post = "200240";
friends.year = 1989; friends.month = 9; friends.day = 8;
rear->next = NULL;

p = head->next;

while (p->next != NULL)
{ cout<< p->data.phone<< endl;
p = p->next;
}
}
...全文
85 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yyleah 2010-01-09
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 lixung 的回复:]
主要错误有下:
1思路不清
2new没有delete造成memory leak

楼主是想实现一个链表吧

C/C++ codelkT head,*pRear;//定义头和尾friendT p=new friendT ;
......//对p赋值
pRear= p;
head.next= pRear;//.....p = new friendT ;p = new friendT ;//....增加链表元素
[/Quote]

谢谢!我懂了。。
lixung 2010-01-09
  • 打赏
  • 举报
回复
主要错误有下:
1思路不清
2new没有delete造成memory leak

楼主是想实现一个链表吧

lkT head,*pRear;//定义头和尾
friendT p = new friendT ;
......//对p赋值

pRear = p;
head.next = pRear;

//.....p = new friendT ;p = new friendT ;//....增加链表元素
yyleah 2010-01-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 joachern 的回复:]
你做的链表,但是第一个最好处理好 他的头和尾是同一个对象,在后期操作的时候只是插入就行了
lkT *head, *p, *rear;

head = new lkT; rear = new lkT;

p = new lkT;
这三行代码感觉不太清楚,导致后期删除内存也存在问题
[/Quote]

额。。。我还是不太清晰。。
joachern 2010-01-09
  • 打赏
  • 举报
回复
你做的链表,但是第一个最好处理好 他的头和尾是同一个对象,在后期操作的时候只是插入就行了
lkT *head, *p, *rear;

head = new lkT; rear = new lkT;

p = new lkT;
这三行代码感觉不太清楚,导致后期删除内存也存在问题
joachern 2010-01-09
  • 打赏
  • 举报
回复
调试一下 ,截图看看看 ?
yyleah 2010-01-09
  • 打赏
  • 举报
回复
我觉得很有可能是指针用错了。。。帮忙啦 谢谢~
yyleah 2010-01-09
  • 打赏
  • 举报
回复
能通过编译。。但是运行时会跳出错误。。就是是否发送报告那个。。。
coolcoffee4051982 2010-01-09
  • 打赏
  • 举报
回复
没有VC,请发个错误的代码

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧