作者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