-4
此代碼的目的是傳遞十進制虛擬地址並輸出頁碼和偏移量。錯誤:間接尋址需要指針操作數('int'無效)
後,我編譯在Linux上使用gcc編譯我的代碼,我得到這個錯誤:
indirection requires pointer operand ('int' invalid) virtualAddress = *atoi(argv[1]);
#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>
#include <unistd.h>
#include <math.h>
#include <curses.h>
int main(int argc,char *argv[])
{
unsigned long int virtualAddress,pageNumber,offset;
if(argc<2){
printf(" NO ARGUMNET IS PASSED");
return 0;
}
virtualAddress = *atoi(argv[1]);
//PRINT THE VIRTUAL ADDRESS
printf("The Address %lu contains:",virtualAddress);
//CALCULATE THE PAGENUMBER
pageNumber = virtualAddress/4096;
//PRINT THE PAGE NUMBER
printf("\n Page Number = %lu",pageNumber);
//FIND THE OFFSET
offset = virtualAddress%4096;
//PRINTS THE OFFSET
printf("\n Offset = %lu",offset);
getch();
return 0;
}
感謝。它的工作:) – azizoh
@azizoh很高興幫助。 – ameyCU
@azizoh - 如果ameyCU的答案解決了您的問題,您應該強烈考慮接受答案 – 4386427