我有一个带有整数数组的文本文件。无论动态数组的行数和列数如何,我都需要逐项阅读。似乎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++;
}
感谢您的帮助。
答案 0 :(得分:0)
MatrizTemp = (int **) realloc (MatrizTemp, sizeof(int) * (i + 1));
您似乎期望int**
因此您的身材可能出错 - 应该是sizeof(int*) * num_reqd
MatrizTemp[i] = (int *) realloc (MatrizTemp, sizeof(int)));
总是重新分配一个int - 需要与j
的值绑定。
说完所有这些:这不是一种非常有效的方法。好的学习练习,但生产代码?否。