Я пытаюсь выделить 10000 таблиц страниц, но не могу их скомпилировать. Я получаю следующую ошибку.Неверное преобразование из 'void *' в char (*)?
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);
Мой код, как указано ниже.
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;
}
}
Не знаете, как это решить. Пожалуйста помоги.
Вы не можете присвоить массив ... –
'my_memory' должен быть [указатель на массив] (HTTP: //cdecl.ridiculousfish. com /? q = char +% 28 * my_memory% 29% 5B4096% 5D) – Kninnug
Вы используете компилятор C++ случайно? – aschepler