我正在编写一个程序,并得到了一个内存位置,我已经存储为一个无符号整型和映射的长度为一个无符号整型,我想取消映射。解决munmap警告消息
我下面的方法产生的警告:
warning: passing argument 1 of ‘munmap’ makes pointer from integer without a cast [enabled by default]
/usr/include/i386-linux-gnu/sys/mman.h:77:12: note: expected ‘void *’ but argument is of type ‘unsigned int’
,并在这里引起了我的注意:
//startAddr and addrRange are stored as an unsigned int,
void unmap(mapping_t *maps, const int *curSize){
int i = 0;
for (; i < *curSize; i++){
munmap(maps[i].startAddr, maps[i].addrRange);
}
}
我的程序也崩溃了,当我打了munmap,但我假设有以某种方式处理警告
根据要求定义struct mapping_t:
typedef struct mapping{
unsigned int startAddr;
unsigned int endAddr;
unsigned int addrRange;
} mapping_t;
发布'mapping_t'的定义。我当然希望你没有把指针值填充到'unsigned int'中。 –
编译器肯定认为他是 – pm100