gpt4 book ai didi

sizeof 的代码?

转载 作者:太空宇宙 更新时间:2023-11-04 05:10:16 25 4
gpt4 key购买 nike

我试图编写一个简单的代码来充当 sizeof(此代码中专门用于 int)。但为什么它显示 1 作为输出?应该是 4。

#include<stdio.h>
int SIZEOF(int *);

int main(void)
{
int a;
printf("Size is:%d bytes\n",SIZEOF(&a));

return 0;
}

int SIZEOF(int *p1)
{
int *p2;
p2=p1;

p1++;

return (p1-p2);
}

最佳答案

指针算法以所指向类型的大小为单位进行运算。当您执行 p1 - p2 时,您得到的是 int 单元的数量,而不是 char 单元的数量。添加一些类型转换:

return (char *)p1 - (char *)p2;

编辑说明:SIZEOF 应该可能返回 ptrdiff_tsize_t

关于sizeof 的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17684523/

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