[問題] new local的東西會蓋掉global point
我本來打算實作一個 struct link, node是我自訂的struct
ptrNodeFront 是開頭,照理說只會被assign一次才對
結果每次只要宣告新的 node, ptrNodeFront就會立刻被蓋掉
實在是想不通怎麼會這樣?
//全域宣告
struct node
{
char* strKeyin;
struct node* next; //指向同類struct的指標
};
node *ptrNodeFront;
//全域宣告結束
while(1)
{
char *strKeyin = new char[20]; //供輸入暫存
int nNumOfKeyinChar=0;
static int nNumOfNode=0;
printf("請輸入字串或命令");
scanf("%s",strKeyin);
//檢查使用者這次輸入幾個字? 不可檢查到超過20
while(strKeyin[nNumOfKeyinChar]!='\0' && nNumOfKeyinChar<20)
{
nNumOfKeyinChar++;
}
/*這行會蓋掉*/ node StrNode ; //生命週期只在while迴圈內
nNumOfNode++;
StrNode.strKeyin = new char[nNumOfKeyinChar]; //宣告等於這次輸入長度的字串
StrNode.strKeyin = strKeyin;
if(1==nNumOfNode)
ptrNodeFront = &StrNode;
else if(2==nNumOfNode)
(*ptrNodeFront).next = &StrNode;
else if(3==nNumOfNode)
(*(*ptrNodeFront).next).next = &StrNode;
//delete strKeyin;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.122.165.23
推
09/29 06:55, , 1F
09/29 06:55, 1F
→
09/29 06:55, , 2F
09/29 06:55, 2F
→
09/29 06:55, , 3F
09/29 06:55, 3F
→
09/29 06:56, , 4F
09/29 06:56, 4F
→
09/29 06:56, , 5F
09/29 06:56, 5F
→
09/29 06:57, , 6F
09/29 06:57, 6F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章