這是我的問題。我沒有在我的代碼中得到正確的char *返回值。下面是我的代碼部分我沒有得到最終回報的正確回報值
主要功能:
int main(int argc, char *argv[]){
....
....
while (counter < line_C){
char* zzz = searcher(line_arr[counter], 0);
prog_counter[prog_counter_C] = atoi(zzz);
prog_counter_C++;
counter++;
}
}
ZZZ得到正確的指針,但價值似乎被覆蓋。 這裏有更多的代碼片段來顯示搜索器功能的運行時間。爲附加功能
char* searcher(char input[], int method){
...
...
else if (strncmp(instruction,"ADD", 3) == 0)
return ADD(passer, method, 0);
...
...
}
代碼片段:
char* ADD(char input[], int method, int bytecount){
switch(method){
case 0:
char wtf[2];
char *returner = itoa(Parse_Prog_Count(input), wtf, 10);
return returner;
break;
}
代碼片段Parse_Prog_Count功能:
int Parse_Prog_Count(char input[]){
...
...
return bytecount;
}
我曾嘗試調試,我從Parse_Prog_Count得到正確的返回值,然後ADD,但是當它從搜索者返回到main的最後一個返回時,該值是錯誤的。
我也嘗試從ADD追加到搜索者的值來檢查值,並且返回值仍然正確。這是我遇到問題的最後一個傳球。 來自zzz的值似乎有所改變。
你確定var不會超出範圍? (返回堆棧分配的var的地址是一個可能的錯誤) – avmohan