我有一个包含整数数组的文本文件。我需要逐项读取动态数组的行数和列数。看来 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/