C语言 给指针添加size_t变量



我想给指针添加一个size_t类型。有些像这样:

void function(size_t sizeA,size_t sizeB){
    void *pointer;
    pointer=malloc(sizeA);
    pointer=pointer+sizeB;
}
在假设的情况下,这不会以段错误结束,问题是:我可以这样做吗?给指针添加size_t类型?结果地址会在地址'size'中吗?

我可以这样做[添加size_t到指针]吗?

可以,只要将void指针强制转换为其他类型:

pointer = ((char*)pointer) + sizeB;

指针的类型取决于指针要前进多少。如果转换为char*,则sizeB的每个单元对应一个字节;如果您强制转换为int*,则sizeB的每个单元对应的字节数与系统上存储int所需的字节数相同,以此类推。

然而,你必须确保sizeB的指针大小的缩放小于或等于sizeA,否则所得的指针将无效。如果你想做一个可以解引用的指针,缩放后的sizeB必须严格小于sizeA

相关内容

  • 没有找到相关文章

最新更新