[問題] heap and memory layout
各位先進好,
我想問以下程式碼在 os 上觀念問題,手邊作業系統為 win xp sp3
#include <stdio.h>
typedef unsigned uint;
typedef unsigned char byte;
int main()
{
uint i, val = 0x12345678;
byte* ptr = (byte*)&val;
for(i=0; i!=sizeof(uint)/sizeof(byte); ++i; ++ptr)
printf("%02x ", *ptr);
return 0;
}
Q1 :xp 在 memory layout 之 user-mode 為 0x0001 0000~0x7fff ffff
還是 0x0001 0000 ~ 0x7fff effff ? 這部份微軟是否有文件可查?
( 約 2G)
Q2 :是否所有應用程式(不含 driver, kernel) 都在 user-mode 下?
Q3 :上述若為
uint *val = (uint*)malloc(sizeof(uint));
*val = 0x12345678;
val 所指之位置是否也保證於 user-mode?
謝謝各位不吝指教!
--
YouLoveMe() ? LetItBe() : LetMeFree();
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 180.177.73.222
→
04/14 11:34, , 1F
04/14 11:34, 1F
→
04/14 11:35, , 2F
04/14 11:35, 2F
http://ppt.cc/PxYd --> user mode: 0x0001 0000~0x7fff ffff,
不知是否我有所誤會. 若 3 為是的話
uint i, *pval = (uint*)malloc(sizeof(uint));
byte* ptr = NULL;
*pval = 0x12345678;
// ptr = pval; // 故意不這麼寫
ptr = 0x395ec8; // 指向特定位置 (此位置即為 pval 指向位置)
printf("%0x\n", *pval);
// 以 ptr 去改 0x395ec8 之值
for(i=0; i!=sizeof(uint)/sizeof(byte); ++i, ++ptr)
*ptr = ~ (*ptr);
// 顯示更改後之值
printf("%0x", *pval);
程式碼中之 ptr 是否會出包?
※ 編輯: tropical72 來自: 180.177.73.222 (04/14 11:45)
推
04/14 11:41, , 3F
04/14 11:41, 3F
→
04/14 12:09, , 4F
04/14 12:09, 4F
謝謝指正!
※ 編輯: tropical72 來自: 180.177.73.222 (04/14 12:10)
推
04/14 12:14, , 5F
04/14 12:14, 5F
→
04/14 12:17, , 6F
04/14 12:17, 6F
→
04/14 12:24, , 7F
04/14 12:24, 7F
→
04/14 12:34, , 8F
04/14 12:34, 8F
→
04/14 14:17, , 9F
04/14 14:17, 9F
→
04/14 14:20, , 10F
04/14 14:20, 10F
→
04/14 14:22, , 11F
04/14 14:22, 11F
謝謝 loveme00835, stdint.h 並不存在於 vc (手邊+爬文,6.0 2003 2008 均無)
http://ppt.cc/PC;_ 照著加也無法正常執行
最後換到 dev-c 便可正常使用 sample code
做壞事真的沒那麼容易 XD 歷經了一陣指標地獄,
最後放上醜醜的屍體 (卡住) ...
http://codepad.org/0QCc3Q4E
謝謝各位這次指教,有空會再翻翻書看相關說明的。
※ 編輯: tropical72 來自: 180.177.73.222 (04/14 14:46)
推
04/14 14:37, , 12F
04/14 14:37, 12F
→
04/14 14:37, , 13F
04/14 14:37, 13F
→
04/14 14:47, , 14F
04/14 14:47, 14F
→
04/14 15:42, , 15F
04/14 15:42, 15F
→
04/14 15:49, , 16F
04/14 15:49, 16F
推
04/14 16:13, , 17F
04/14 16:13, 17F
→
04/14 16:36, , 18F
04/14 16:36, 18F
推
04/14 16:46, , 19F
04/14 16:46, 19F
→
04/15 13:06, , 20F
04/15 13:06, 20F
推
04/15 14:45, , 21F
04/15 14:45, 21F
→
04/15 14:46, , 22F
04/15 14:46, 22F
→
04/15 14:46, , 23F
04/15 14:46, 23F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章