有什么unsigned int*
不同的东西吗int*
?我知道unsigned
有更高的价值范围.还是,int*
甚至不能指向任何unsigned int
?
char *str = "Hey baby";
Run Code Online (Sandbox Code Playgroud)
为字符串创建内存并指向str
它.如果这是有效的,为什么不是以下内容:
int *x = {7, 0, 1};
Run Code Online (Sandbox Code Playgroud)
这应该做同样的事情,除了它们是int
s而不是char
s.
我正在查看sbrk
系统调用的文档,发现这个:
成功时,
sbrk()
返回上一个程序中断.(如果中断增加,则此值是指向新分配的内存的开始的指针).出错,(void *) -1
返回,并errno
设置为ENOMEM
.
现在,
有什么意义(void *) -1
?
它指向的确切内存地址是什么?(如果确实如此)
如何保证(void *) -1
不是sbrk()
成功返回的有效地址?
我想快速创建一个静态链表,尽可能少的代码,这是非常可读,没有混乱.我如何优雅地完成这项工作?
就像是
1 -> 2 -> 3 -> 4 -> NULL