簡體   English   中英

C中指針值更改的可能原因?

[英]Possible causes for pointer value change in C?

我有一個功能

void* fn( void* ptr ){...}

我用作pthread中的啟動方法。 在函數中的某個地方,我遇到一個錯誤,即ptr (通常指向一個結構)從其原始值更改為0x100000000000000(從printf("%p") ),盡管函數fn沒有任何位置被賦給我只讀取其值,例如ptr->value 有任何想法嗎?

在調用的函數中可能是緩沖區溢出。

假設是Linux系統,我通常使用GDB 硬件觀察點調試此類錯誤。

您也可以通過valgrind運行程序。

暫無
暫無

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

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