请教指点,看了好久都不知道问题出在什么地。

kevin0716 2008-02-20 12:37:34
我写了一个程序
其中用到一个结构体
struct Node{
char * s;
Node * next;
string ordered_s;
};


之后我想构建一个list
函数如下
Node * buildup(Node * wordlist, char * word){
Node * temp = new Node;
temp->s = word;
cout << temp->s << " ";//
temp->ordered_s = ordering(word);
cout << temp->ordered_s << " " << endl;//
temp->next = wordlist;
wordlist = temp;
return wordlist;
}

是用wordlist的指针指向一个list,想在这个list之前插入一个word,但是我把它设置为char *类型,
temp->s = word;
cout << temp->s << " ";//
这个地方显示就不对。
但是下面我对这个word进行排序,显示却是正确的,其中ording的功能就类似char*p="apple",ording之后为aelpp (按字母数序排序)
这是为什么呢?
请指点。谢谢1
...全文
100 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
kevin0716 2008-02-29
  • 打赏
  • 举报
回复
是呀,我实际上是将word的地址传给了temp->s,在使用cout就应该可以显示出来呀。况且您说的直接尝试cout<<word,这样的确可以,谢谢啦,可能我的函数有些问题。至于节点的连接上。就是后面的这两句temp-> next = wordlist;
wordlist = temp;
,是没有问题的吧。
ltc_mouse 2008-02-20
  • 打赏
  • 举报
回复
你确定buildup函数中的cout<<temp->s有问题?
那是否说明传入的参数word有问题呀?直接尝试cout<<word呢

另外,temp->s=word只是记录了字符串地址,没有复制字符串内容;ordered_s是string类,赋值过程有内存分配。

64,654

社区成员

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

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