作者ok456 (ooxx)
站内Programming
标题[问题] 指标指向NULL
时间Fri Aug 27 00:41:43 2010
小的程式是要建一颗Tree
但是children数是动态的
於是小的想设计一Linking List叫children
包在叫TreeNode的Object里面
里面有TreeNode*和children*
要读的时候就扫这个List
终止条件为->next=NULL
於是小的都会先把next assign成NULL
当有东西(string)进来时 再new children
我想请问一下
设成NULL再new会不会有问题呢?
因为我在debug发现很莫名的现象
就是在建Tree时 新增下面的leafnode时
莫名其妙Root的data也一起被改掉了= =
可是那时pointer并没有指向Root= =
而且每次重开程式状况都不大一样= =
不知道是不是记忆体上的问题
麻烦各位了
喔对了 我是用Turbo C= =
因为CodeBlock 的debug我一直不太会用(按continue它就说debugger中止
设breakpoint也没用= =)
Dev-c则说我有segmentation fault
不知道是不是因为这样呢?
问题有点弱 请多多包涵> <
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.62.74.142
1F:推 cgcheng:list在c++现成可用,c的话好像要先malloc? 61.229.216.62 08/27 00:50
2F:→ cgcheng:程式要不要先列出来一下? 61.229.216.62 08/27 00:52
3F:→ cgcheng:也可以用valgrind测试一下 61.229.216.62 08/27 01:07
4F:推 SmallBeeWayn:有没有可能是初值问题?122.116.180.163 08/27 01:45
5F:→ cgcheng:看有没有core file之类的,backtrace 61.229.234.235 08/29 13:48
t1.root=new TreeNode;
strcpy(t1.root->data,clause);
q1=&(t1.root->children);
q1=&那行似乎有问题
这样写有什麽问题吗
谢谢各位
struct childchain
{
TreeNode* child;
childchain* next;
};
class TreeNode
{
friend class Tree;
public:
childchain children;
int vocabnum;
char *data;
};
※ 编辑: ok456 来自: 61.62.94.142 (08/29 19:08)
6F:→ james732:你的q1是什麽型态? 140.117.171.46 08/29 20:36
7F:→ ok456:childchain* 61.62.94.142 08/29 21:17
8F:→ loveme00835:t1.root->data 有没有配置空间? 没配140.121.197.115 08/29 21:41
9F:→ loveme00835:用strcpy一定炸140.121.197.115 08/29 21:41
10F:→ ok456:阿= =new TreeNode还不够对吧? 61.62.94.142 08/29 22:03
11F:→ ok456:还要让data去new是吗? 61.62.94.142 08/29 22:03
12F:→ loveme00835:当然阿= =140.121.197.115 08/29 22:06
13F:→ ok456:非常感谢 61.62.94.142 08/29 22:08
14F:→ darkgerm:如果写char data[100];是不是就不用new了 124.8.140.3 08/29 22:08
15F:→ loveme00835:是阿, 只不过这样节点占的空间会很大140.121.197.115 08/29 22:13