gpt4 book ai didi

c - 将 sbrk 的结果分配给指针时的对齐问题 - K&R

转载 作者:太空宇宙 更新时间:2023-11-03 23:20:07 26 4
gpt4 key购买 nike

引用 Kernighan 和 Ritchie 的这段代码(第 2 版第 188 页),

static Header* morecore(unsigned nu) {
char *cp, *sbrk(int);
Header* up;

if (nu < NALLOC)
nu = NALLOC;

cp = sbrk(nu * sizeof(Header));

if (cp == (char*) -1) /* No space at all */
return NULL;

up = (Header*) cp;
up->s.size = nu;
free((void*)(up+1));
return freep;
}

这里的问题是当 sbrk 返回的值类似于 101 时会发生什么,当 up 的指针赋值在行中完成时对齐将无效up = (Header*)cp;

这可能有一个非常明显的答案,如果我错过了,很抱歉!

最佳答案

根据 this page , 权威性我不敢说:

It is unspecified whether the pointer returned by sbrk() is aligned suitably for any purpose.

所以基本上,是的,您很可能会发现存在对齐问题。

关于c - 将 sbrk 的结果分配给指针时的对齐问题 - K&R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42127177/

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