【问题标题】:Missing items eventually array list缺少的项目最终数组列表
【发布时间】:2019-09-21 13:35:03
【问题描述】:

有时,我的清单“消失”了一些项目。

调试,我意识到最终会发生。

所以我认为这是内存分配方式的问题。

问题:

需要从文件中获取一些哈希值,然后插入到列表中以供以后处理。

.txt:

####
....
....
....

....
.##.
.##.
....

####
....
....
....

我在列表中插入了一个数组,其中包含每个哈希的行和值,例如:

示例哈希 2:

line[0][0] = 1
line[0][1] = 2
line[1][0] = 1
line[1][1] = 2

关于哈希:

对于文本文件的第一个哈希,有时,如果我使用多个,他就会消失。

使用第二个哈希,有时他会随着第一个数组消失。

我没有看到不同哈希值会发生这种情况。

问题是,在之前的交互中我得到了正确的数组列表,所以当我继续时,数组的一部分消失了。

以下所有代码

Code to deal with everything

输出:从 .txt 上的哈希 1 开始

输出 -> 哈希 2 从哈希 1 和 2 开始

I: 0  J: 0, tmp[0][0]: Value: 0
I: 0  J: 1, tmp[0][1]: Value: 1
I: 0  J: 2, tmp[0][2]: Value: 2
I: 0  J: 3, tmp[0][3]: Value: 3
Next from list
I: 0  J: 0, tmp[0][0]: Value: 1
I: 0  J: 1, tmp[0][1]: Value: 2
I: 1  J: 0, tmp[1][0]: Value: 1
I: 1  J: 1, tmp[1][1]: Value: 2

也就是说,他做了分配并正确地得到了数组。

但是当我们进行下一次交互时,使用下一个哈希,该数组的一部分消失了。

-> 输出哈希 2 + 1

下一次交互,现在获取哈希n3

I: 0  J: 0, tmp[0][0]: Value: 0
I: 0  J: 1, tmp[0][1]: Value: 1
I: 0  J: 2, tmp[0][2]: Value: 2
I: 0  J: 3, tmp[0][3]: Value: 3

Next
I: 1  J: 0, tmp[1][0]: Value: 1
I: 1  J: 1, tmp[1][1]: Value: 2

Next
I: 0  J: 0, tmp[0][0]: Value: 0
I: 0  J: 1, tmp[0][1]: Value: 1
I: 0  J: 2, tmp[0][2]: Value: 2
I: 0  J: 3, tmp[0][3]: Value: 3

【问题讨论】:

  • 请使用您正在使用的代码发布minimal reproducible example
  • 我明白了。问题在于 realloc 函数。我创建了自己的 realloc,由于某种原因,他正在“吃”我数组的一部分。还没解决,但我知道是从那里开始的
  • 对不起,我知道这不是一个好帖子,但是,是的,是一个大错误,我在过去 2 天里一直在苦苦挣扎
  • 我的重新分配:pastebin.com/iKVHnGRm

标签: c++ c arrays memory memory-management


【解决方案1】:

问题解决了。

我之前已经创建了自己的 realloc 函数。

char    *ft_realloc(char *str, size_t size)
{
    char *new_str;
    int i = 0;

    new_str = malloc(size);
    ft_bzero(new_str,size);
    if(!new_str)
        return (0);
    if(str)
    {
        ft_strncpy(new_str, str, size);
        free(str);
    }
    return new_str;
}

解决办法,free前设置为null。

str = NULL
free(str)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多