I am trying to allocate 10000 page-tables but unable to compile. I am getting the following error.
error: invalid conversion from 'void*' to 'char (*)[(<anonymous> + 1)]' [-fpermissive]
char (*my_memory)[sysconf(_SC_PAGESIZE)] = mmap(NULL,PAGE_SIZE * (100000 + OVERSIZE),PROT_READ | PROT_WRITE,MAP_PRIVATE | MAP_ANONYMOUS,-1,0);
My code as below.
int main(int argc, char **argv) {
unsigned long physical_addr;
uint8_t *buf;
unsigned long virtual_addr;
char (*my_memory)[sysconf(_SC_PAGESIZE)] = mmap(NULL,PAGE_SIZE * (100000 + OVERSIZE),PROT_READ | PROT_WRITE,MAP_PRIVATE | MAP_ANONYMOUS,-1,0);
int i;
for (i = 0; i * sizeof(*my_memory) < 10000; i++) {
my_memory[i][0] = 1;
}
}
Not sure how to solve this. Please help.