gpt4 book ai didi

c++ - 方法调用后字节大小不正确

转载 作者:行者123 更新时间:2023-11-30 20:47:01 24 4
gpt4 key购买 nike

我用我拥有的一段较大的代码制作了这个最小的工作示例。

问题是,第一次调用时 sizeof 打印 16,这是正确的大小,而第二次调用时仅打印 8。奇怪的是,它总是打印 8,与结构的大小无关,无论是否有其中只有一个值或 10 个值。

struct test_struct
{
int32_t val1;
int32_t val2;
int32_t val3;
int32_t val4;
};

unsigned char * StructToChar(test_struct structy)
{
unsigned char returnval[sizeof(structy)];
memcpy(returnval, &structy, sizeof(structy));
return returnval;
}

int main()
{
test_struct sendstruct = {};
unsigned char *test_array = StructToChar(sendstruct);

unsigned char returnval[sizeof(sendstruct)];
memcpy(returnval, &sendstruct, sizeof(sendstruct));

printf("%d\n", sizeof(returnval));
printf("%d\n", sizeof(test_array));
return 0;
}

最佳答案

sizeof(test_array)sizeof(unsigned char *),因此是指针的大小。

关于c++ - 方法调用后字节大小不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34256884/

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