我想向指针添加 size_t 类型。有些像这样:
void function(size_t sizeA,size_t sizeB){
void *pointer;
pointer=malloc(sizeA);
pointer=pointer+sizeB;
}
在假设的情况下,这不会以段错误结束,问题是:我可以这样做吗?将类型 size_t 添加到指针?结果地址将在地址“大小”中?
我可以这样做吗[添加size_t
到一个指针]?
是的,你可以,只要你投了void
指向其他类型的指针:
pointer = ((char*)pointer) + sizeB;
指针的类型决定了指针要前进的程度。如果你投射到char*
, 每个单位sizeB
对应一个字节;如果你投射到int*
, 每个单位sizeB
对应于存储一个字节所需的字节数int
在您的系统上,等等。
但是,您必须确保sizeB
根据您投射到的指针的大小进行缩放小于或等于sizeA
,否则生成的指针将无效。如果你想制作一个指针,可以解引用的, 缩放sizeB
必须严格小于sizeA
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)