看板 C_and_CPP 關於我們 聯絡資訊
http://nopaste.info/b02b89cf45.html 請問一下我無意間測試一下發現 q->print(); 和qq->print();印出來竟然一樣!!? 這是什麼原因呢?? 另外想問 我這支程式如果"沒有關掉"的話 我再寫另一個程式 read的話 ex: FILE * pFile; pFile = fopen ( "C:/test.bin" , "rb" ); fseek (pFile , 0 , SEEK_END); int lSize = ftell (pFile)/sizeof(QQ); cout<<"file size:"<<lSize<<endl; rewind (pFile); QQ *ptr; ptr=new QQ[lSize]; fread (ptr,sizeof(QQ),lSize,pFile); 如果印出 ptr->print(); 天真的以為可以印出 "HELLO" (和write程式const char*p指到的位址相同) 不過他是印出 "bin" <====怎會印出副檔名!! 我只有一個粗淺的觀念就是兩個process 不能共用記憶體 那如果這樣 我們用&看到的位址 是什麼涵義? 兩個程式看到的同一個"記憶體位置"為什麼不一樣??? 請各位指教 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.207.187
legnaleurc:第一個問題,你用指標去指同一個 string literal 06/04 15:04
legnaleurc:當然同一process位址都一樣 06/04 15:04
legnaleurc:第二個問題...不要假設C++ ADT可以用低階方式輸出 06/04 15:05
legnaleurc:參考 boost::serialization 06/04 15:05
adrianshum:我只想說一句... 這是什麼鬼命名 =_= 06/04 16:09
adrianshum:另外, 不同process 的 address space 是分開的 06/04 16:10
QQ29:這只是測試啦@@ 不過1F講的好高階 我好難體會..... 06/04 16:11
adrianshum:process A 和 B 的 "同一位置", OS 其實是將其指向另一 06/04 16:11
adrianshum:真正的位置 06/04 16:11
littleshan:這位大大也是本板常客了...建議修一下組合語言 06/04 16:27
littleshan:這樣你會比較清楚 compiler 到底再搞什麼鬼 06/04 16:28
littleshan:然後最後一個問題...修一下 OS 也可以得到答案 06/04 16:32
MOONRAKER:誰用體會學語言啊 學語言就學就好 牽拖啥體會(挖鼻孔) 06/04 16:39
VictorTom:的確這個問題應該要去修OS/ASM比較清楚, 不同的process 06/04 18:01
VictorTom:有各自的virtual address space, 一般&回來的應該都是 06/04 18:02
VictorTom:virtual address, address相同未必會對應同樣的physical 06/04 18:02
VictorTom:address; 話說這些東西小弟我大學時完全沒有把它們搞懂, 06/04 18:03
VictorTom:工作以後東撞一點西碰一點, 才慢慢補起來這些觀念的Orz 06/04 18:03
VictorTom:不過, 說兩個process不能共用memory嘛, 好像也不全對? 06/04 18:05
MOONRAKER:史密斯探員乃突破保護模式的大師也 06/04 21:53
Eric30:process間的溝通真的就要去翻一下恐龍本了 :) 06/04 22:40