gpt4 book ai didi

c++ - 从 void* 到 int* 的无效转换

转载 作者:行者123 更新时间:2023-11-28 02:18:55 28 4
gpt4 key购买 nike

我有一个全局变量:

static int *avgg;

在主函数中:

avgg = mmap(NULL, sizeof *avgg, PROT_READ | PROT_WRITE, 
MAP_SHARED | MAP_ANONYMOUS, -1, 0);

pid_t pid, wpid;
int status;

pid = fork();
if (pid == 0) {
avg(argc,argv);
print_avg();

}
else{
while ((wpid = wait(&status)) > 0) {

}
cout<<"Parent process";
print_avg();

通过使用 mmap,我试图在父进程和子进程之间共享内存,但出现错误:

invalid conversion from ‘void*’ to ‘int*’ [-fpermissive]
MAP_SHARED | MAP_ANONYMOUS, -1, 0);

最佳答案

您正试图将 mmap 的返回值(void *)隐式转换为 int *,而您的编译器设置不允许您在没有显式转换的情况下这样做。

尝试 avgg = (int *)mmap(NULL, sizeof *avgg, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANONYMOUS, -1, 0);

关于c++ - 从 void* 到 int* 的无效转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33173252/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com