我想在c中使用mmap()來映射內存。運行下面的代碼後,打印1,因爲的sizeof(void *的)爲1,那麼如何才能知道我們沒有得到1234個字節的內存sizeof mmap在c中,我們如何知道我分配了多少內存
void *heap_region = NULL;
heap_region = mmap(NULL, 1234, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0);
printf("%lx",sizeof(*heap_region));
你想達到什麼目的?我們從這個開始。 – Elyasin
這真的甚至編譯? –
你爲什麼試圖爲此目的使用'sizeof'?僅僅因爲它有「大小」和「的」呢?不,'sizeof(void *)'通常不是1.你的代碼甚至不會嘗試評估sizeof(void *)'。它試圖評估'sizeof(void)',這在C中是非法的。 – AnT