[英]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。 我敢打賭你的問題神奇地消失了。
除了此處發布的其他內容之外,還應避免使用class
, CLASS_ID
和CLASS_NAME
class
名稱,因為它們在將來可能包含的許多庫中是#defined
,並且需要調試數小時才能找出突然出現的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.