私はプログラムを書いていて、私が署名のないint型とunsigned int型のマッピングの長さとして格納しているメモリ位置を取得しました。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'にポインタ値を詰め込んでいないことを願っています。 –
私は 'void *'型に変更すると、コンパイラは彼が – pm100