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

时间:2018-04-16 03:20:00

标签: 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++;
}

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

MatrizTemp = (int **) realloc (MatrizTemp, sizeof(int) * (i + 1));您似乎期望int**因此您的身材可能出错 - 应该是sizeof(int*) * num_reqd

MatrizTemp[i] = (int *) realloc (MatrizTemp, sizeof(int)));总是重新分配一个int - 需要与j的值绑定。

说完所有这些:这不是一种非常有效的方法。好的学习练习,但生产代码?否。