gpt4 book ai didi

c - glob() 在使用 GLOB_APPEND 作为标志时给出 "realloc(): invalid pointer"

转载 作者:行者123 更新时间:2023-12-04 18:59:39 24 4
gpt4 key购买 nike

再会。我正在尝试使用多个过滤器检索路径名。

glob_t globbuf;

for(int i = 0; i < 2; i++)
{
char*currentFilter = concat(Workdir, fileNameFilter[i]);
int result;
printf("This is the current filter %s", currentFilter)
result = glob(currntFilter,GLOB_APPEND, NULL, &globbuf)
}
当输入 ./a.out 时,它会顺利完成第一次迭代,直到它到达 glob() 函数。
终端打印出来:
realloc(): 无效指针
在写这篇文章时,我想我发现 glob 没有任何东西可以附加?这就是我收到此错误的原因吗?
我主要用 C# 编写,这类似于空引用异常吗?
谢谢你。

最佳答案

globbuf未初始化。您只能使用 GLOB_APPENDglob_t由先前成功调用 glob 初始化.所以例如你可以做i==0 ? 0 : GLOB_APPEND而不是 GLOB_APPEND .但是您还应该添加一些对返回值等的检查,因为如果第一次调用失败,使用错误会回来,而不是仅仅硬编码假设第一次调用成功。

关于c - glob() 在使用 GLOB_APPEND 作为标志时给出 "realloc(): invalid pointer",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64898064/

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