求大神指点一二!小弟感激不尽

唐僧爱吃唐僧肉 2017-08-16 10:10:24
#include <iostream>
#include <string>
#include <malloc.h>
using namespace std;
typedef struct node
{
node *prior;
node *next;
string data;
}*s;
node *receive(node *p,int &i)
{
node *q;
node *head;
head=(node *)malloc(sizeof(node));
q=head;
char ch;
do
{
p=(node *)malloc(sizeof(node));
cin>>p->data;//为什么在接收数据时停止了?
//求大神详解
p->prior=q;
p->next=q->next;
q->next=p;
q=p;
i++;
ch=cin.get();
}while(ch!='\n');
p->next=head->next;
head->next->prior=p;
free(head);
return p->next;
}
int main()
{
node *p,*s;
int sum;
p=receive(s,sum);
int j;
for(j=0;j<sum;j++)
{
cout<<p->data<<' ';
p=p->prior;
}
return 0;
}
调试接收数据时竟然停止了!求大神详解
...全文
156 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
OldHello 2017-08-16
  • 打赏
  • 举报
回复
指针参数这样申请动态内存有问题的。 建议去看一下的指针的参数传递 。
OldHello 2017-08-16
  • 打赏
  • 举报
回复
指针的参数传递?
zgl7903 2017-08-16
  • 打赏
  • 举报
回复
cin 就是标准的控制台输入,需要你在控制台输入内容,再回车
Mark041 2017-08-16
  • 打赏
  • 举报
回复
把string data改成数组字符吧

64,640

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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