c - 如何使用 realloc() 函数逐项读取文件文本数组?

标签 c multidimensional-array dynamic

我有一个包含整数数组的文本文件。我需要逐项读取动态数组的行数和列数。看来 realloc() 函数可以满足我的要求。如何使用它一次添加一项?

我迷失在这段代码中:

i = 0;

while (fgets(temp, sizeof(tempMatriz), Matriz) != NULL)
{
    token = strtok(temp, "  ");
    j = 0;
    // **FIRST LINE OF DYNAMIC ARRAY**
    MatrizTemp = (int **) realloc (MatrizTemp, sizeof(int) * (i + 1));

    while(token != NULL)
    {
        **FIRST COLUMN OF DYNAMIC ARRAY**
        MatrizTemp[i] = (int *) realloc (MatrizTemp, sizeof(int)));
        MatrizTemp[i][j] = atoi(token);
        token = strtok(NULL, "  ");
        j++;
    }
    i++;
}

感谢您的帮助。

最佳答案

MatrizTemp = (int **) realloc (MatrizTemp, sizeof(int) * (i + 1)); 似乎您期望一个 int** 所以您的大小可能是错误的 - 应该是 sizeof(int*) * num_reqd

MatrizTemp[i] = (int *) realloc (MatrizTemp, sizeof(int))); 始终重新分配一个 int - 需要与 j< 的值联系起来.

话虽如此:这不是一个非常有效的方法。适合学习练习,但是生产代码呢?没有。

关于c - 如何使用 realloc() 函数逐项读取文件文本数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49849189/

相关文章:

c - 等待条件变量时是否需要互斥锁? [带有示例代码]

c++ - C 与 C++ 中的数组衰减规则?

variables - 为什么会这样(或如何)?

c - 如何在 C Open VMS 中将 char 指针转换为 char

c - 从终端输入到C文件中

python - 在 numpy 数组中沿轴求和

iphone - 如何使用代码更改显示名称

objective-c - Objective C 运行时如何查找已定义的消息?

c - 来自变量名的指针

php - 删除多维数组中的父键