gpt4 book ai didi

c - realloc 如何管理指针大小?

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

<分区>

我在 C 中使用 realloc() 函数,我对这个函数的实际工作方式有疑问...

假设我读取了一个包含整数列表的 ASCII 文件

$ cat liste.txt
1
2
3

我希望将此列表存储在整数表中。这是我的代码,每次从文件中读取新值时都会使用 realloc()

int *table, *table_tmp;
int n;
int taille = 0;

while ( fscanf(fid, "%d", &n) != EOF)
{
table_tmp = (int *) realloc((void *) table, (taille+1)*sizeof(int));
if (table_tmp != NULL)
table = table_tmp;

*(table+taille) = n;
fprintf(stdout, "READ : %02d\tSTORED : %02d\n", n, *(table+taille));
taille++;
}

我的问题是:这个函数如何知道表的实际大小???由于它只是一个指针,我认为我们无法知道元素的数量,对吧?我们通过每一步都会增加的taille变量明确地跟踪当前大小,并告诉我们读取可接受的最大值*(table+k)

The realloc() function changes the size of the memory block pointed to by >ptr to size bytes. The contents will be unchanged in the range from >the start of the region up to the minimum of the old and new sizes.

man realloc

非常感谢您的回答:)

BR

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