[問題] 指標指向NULL

看板Programming作者 (ooxx)時間13年前 (2010/08/27 00:41), 編輯推噓2(2013)
留言15則, 6人參與, 最新討論串1/1
小的程式是要建一顆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

08/27 00:50, , 1F
list在c++現成可用,c的話好像要先malloc?
08/27 00:50, 1F

08/27 00:52, , 2F
程式要不要先列出來一下?
08/27 00:52, 2F

08/27 01:07, , 3F
也可以用valgrind測試一下
08/27 01:07, 3F

08/27 01:45, , 4F
有沒有可能是初值問題?
08/27 01:45, 4F

08/29 13:48, , 5F
看有沒有core file之類的,backtrace
08/29 13:48, 5F
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)

08/29 20:36, , 6F
你的q1是什麼型態?
08/29 20:36, 6F

08/29 21:17, , 7F
childchain*
08/29 21:17, 7F

08/29 21:41, , 8F
t1.root->data 有沒有配置空間? 沒配
08/29 21:41, 8F

08/29 21:41, , 9F
用strcpy一定炸
08/29 21:41, 9F

08/29 22:03, , 10F
阿= =new TreeNode還不夠對吧?
08/29 22:03, 10F

08/29 22:03, , 11F
還要讓data去new是嗎?
08/29 22:03, 11F

08/29 22:06, , 12F
當然阿= =
08/29 22:06, 12F

08/29 22:08, , 13F
非常感謝
08/29 22:08, 13F

08/29 22:08, , 14F
如果寫char data[100];是不是就不用new了
08/29 22:08, 14F

08/29 22:13, , 15F
是阿, 只不過這樣節點佔的空間會很大
08/29 22:13, 15F
文章代碼(AID): #1CTfb9z3 (Programming)