tom*_*mol 5 c memory pointers system-calls
我正在查看sbrk系统调用的文档,发现这个:
成功时,
sbrk()返回上一个程序中断.(如果中断增加,则此值是指向新分配的内存的开始的指针).出错,(void *) -1返回,并errno设置为ENOMEM.
现在,
有什么意义(void *) -1?
它指向的确切内存地址是什么?(如果确实如此)
如何保证(void *) -1不是sbrk()成功返回的有效地址?
(void *) -1 == (size_t) -1
Run Code Online (Sandbox Code Playgroud)
它0xFFFFFFFF位于32位机器和0xFFFFFFFFFFFFFFFF64位机器上,是一个无效的地址,应该比任何其他地址都大.