gpt4 book ai didi

C返回数组的大小总是返回相同的错误答案

转载 作者:太空宇宙 更新时间:2023-11-04 00:30:40 27 4
gpt4 key购买 nike

<分区>

在 C 中,我在内存中为 x 数量的 y 结构分配空间(参见下面的代码)并返回此内存区域以供另一个 .c 源文件及其函数使用。

一旦我将分配的内存传递给另一个函数,内存的实际内容就可以正确访问,但是当我想返回传递给函数的结构数量时,它总是返回 4。

在下面的代码中,我显示结构的数量为 37,但返回的数组大小为 4。

“数组”确实按预期正确填充了所有 37 个元素,但我不明白为什么它总是说长度为 4。

我是 C 的新手,所以我可能会遗漏一些明显的东西。

locof为文件名,不为空,文件正确打开。

代码:

 rescue_asset* assets;

no_of_lines = count_lines(locof);
printf("number of lines = %d \n", no_of_lines);

assets = malloc(sizeof (rescue_asset) * no_of_lines);
int size;
size = sizeof(assets);
printf("size : %d \n", size);

打印出来:

number of lines = 37 
size : 4

我是否遗漏了一些明显的东西?

谢谢,克里斯。

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