簡體   English   中英

字符串未正確存儲在結構中

[英]String not storing in a structure properly

typedef struct class {
   char* CLASS_ID;
   char* CLASS_NAME;
}

是什么會導致這兩個字符串在30-40條不相關的代碼行中丟失其值? (分配給從名為getString()的函數返回的指針)。

也許getString()返回一個指向靜態分配緩沖區的指針,該緩沖區的值在每次調用時都會被覆蓋?

也許您正在溢出數組並破壞了堆棧或堆?

也許您正在存儲指向已在堆棧上分配且超出范圍的字符串的指針?

有了有關getString()的更多信息或代碼,某人可能會給您一個明確的答案。

好吧,不知道如何實現getString()或任何其他代碼,它可能是任何東西。 這是C(過度)使用指針的問題的一部分。

我的第一個猜測是getString()實際上返回了一個指向內部( static )字符串的指針,因此每個調用都消除了從上一次檢索到的值。

如果您實際使用的是C ++,那么我強烈建議您放棄此代碼,而改用std :: string。 我敢打賭你的問題神奇地消失了。

除了此處發布的其他內容之外,還應避免使用classCLASS_IDCLASS_NAME class名稱,因為它們在將來可能包含的許多庫中是#defined ,並且需要調試數小時才能找出突然出現的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM