[問題] 鍊結串列
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
Dev-c++
問題(Question):
讀檔放到linklist ,剛開始參考 http://goo.gl/ow34WW 的寫法
用fopen開檔和fgets一行一行取資料,要求記憶體空間用malloc
用dev-c++ 建置和按執行的f10都可以執行也正確,但後來作其他
的做完按exe才發現會當掉,而且是在做第2個節點就出問題
原本: if (startPtr == NULL) {
startPtr = newPtr;
}
else {
currentPtr = startPtr;
while (currentPtr != NULL) {
if (currentPtr->nextPtr == NULL) {
currentPtr->nextPtr = newPtr;
break;
}
currentPtr = currentPtr->nextPtr;
}
}
看起來沒問題雖然每一次都從頭再抓尾巴一次,但都是在第2個節點也就是進else的那個
while當掉
後來改: if(startPtr==NULL){
startPtr=newPtr;
currentPtr=newPtr;
}
else{
currentPtr->nextPtr=newPtr;
currentPtr=currentPtr->nextPtr;
}
就沒問題了
想不到差在哪,參考的linklist寫法範例也試過沒問題
不過dev-c++在建置和執行沒問題,結果點exe才出問題是為什麼...
補充說明(Supplement): 部分程式碼
struct filemenber{
int number;
char school[40];
char major[40];
char day[40];
char level[40];
int howmany;
};
struct linkedListNode {
struct filemenber data;
struct linkedListNode *nextPtr;
};
typedef struct linkedListNode LinkedListNode;
int main(){
char readline[180];
FILE *openfile;
LinkedListNode *startPtr, *newPtr, *currentPtr, *previousPtr;
openfile=fopen("example.txt","r");
startPtr=NULL;
while(fgets(readline,180,openfile)!=NULL){
newPtr =(LinkedListNode*) malloc(sizeof(LinkedListNode));
這裡用上面的程式碼
}
}
實測放第一個出問題的圖:
點dec-C++內的F10 http://i.imgur.com/UKQ6qN9.jpg
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.57.88.116
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1458497247.A.5AF.html
推
03/21 07:57, , 1F
03/21 07:57, 1F
→
03/21 08:22, , 2F
03/21 08:22, 2F
→
03/21 08:24, , 3F
03/21 08:24, 3F
→
03/21 08:27, , 4F
03/21 08:27, 4F
※ 編輯: WBTs (61.57.88.116), 03/21/2016 09:02:15
→
03/21 09:06, , 5F
03/21 09:06, 5F
→
03/21 09:07, , 6F
03/21 09:07, 6F
→
03/21 09:09, , 7F
03/21 09:09, 7F
→
03/21 09:33, , 8F
03/21 09:33, 8F
→
03/21 09:34, , 9F
03/21 09:34, 9F
→
03/21 09:36, , 10F
03/21 09:36, 10F
→
03/21 09:37, , 11F
03/21 09:37, 11F
→
03/21 09:46, , 12F
03/21 09:46, 12F
→
03/21 09:47, , 13F
03/21 09:47, 13F
→
03/21 09:51, , 14F
03/21 09:51, 14F
→
03/21 10:57, , 15F
03/21 10:57, 15F
→
03/21 10:57, , 16F
03/21 10:57, 16F
→
03/21 11:06, , 17F
03/21 11:06, 17F
推
03/21 15:37, , 18F
03/21 15:37, 18F
→
03/21 15:38, , 19F
03/21 15:38, 19F
→
03/21 15:40, , 20F
03/21 15:40, 20F
→
03/21 16:14, , 21F
03/21 16:14, 21F
※ 編輯: WBTs (61.57.88.116), 03/21/2016 16:23:42
→
03/21 17:17, , 22F
03/21 17:17, 22F
→
03/21 19:19, , 23F
03/21 19:19, 23F
→
03/21 20:01, , 24F
03/21 20:01, 24F
→
03/21 20:01, , 25F
03/21 20:01, 25F
→
03/21 20:02, , 26F
03/21 20:02, 26F
→
03/21 23:08, , 27F
03/21 23:08, 27F
推
03/22 00:17, , 28F
03/22 00:17, 28F
→
03/22 00:18, , 29F
03/22 00:18, 29F