看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) x86_64-redhat-linux, gcc 4.1.2 問題(Question): 我最近在開發一套軟體,其中一個function A有大量的float運算。 另一個function B 除了有大量的運算外,還有大量的memory malloc和free。 A和B的運算是完全獨立的,互相不影響。 但是我最近在修改B的時候,發現A的結果有些微的改變(小數點三位以下不太一樣)。 我不禁懷疑,是不是B存取了不該使用的memory,導至A受到影響。 我除了自己仔細的檢查程式外,我還用valgrind進行檢驗。 經過檢驗後,B應該是沒有更動到A的memory。 所以我想請問,當其它function在做memory malloc或free時, 有可能會影響到A中浮點數運算的誤差值嗎? 或是,在什麼情況下,浮點數運算的誤差值可能會被影響。謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 98.223.67.212
cobrasgo:memory的部份不太可能,如果是在user space的話兩邊的 05/22 09:48
cobrasgo:address space是不同的 05/22 09:48
stupid0319:同一個Thread下,使用FPU可能會改到st暫存器吧 05/22 14:06
cobrasgo:你要不要把code po一下? 05/22 18:29