从文件读取并将其存储在2D数组中

时间:2020-10-04 01:40:17

标签: c

我正在研究一个从文件(fp)读取并存储在word数组中的函数。我将MAX_WORD_SIZE声明为128,但是当我在此函数中输入任何文件并使用valgrind检查时,它告诉我“ while(getline(&line,&count,fp)!=-1)”行中有一个未初始化的值,我确实不明白:未初始化的值是多少?我的fp文件有效,单词数组也声明得很好。预先谢谢你。

CREATE TABLE Grp (GroupID int PRIMARY KEY)
CREATE TABLE Item (ItemID int PRIMARY KEY)

CREATE TABLE RuleSet(RulesetID int PRIMARY KEY)
CREATE TABLE Rules(RuleID int PRIMARY KEY)
GO

CREATE TABLE RuleSet_Rules (RulesetID int, RuleID int, PRIMARY KEY (RulesetID, RuleID))
CREATE TABLE Grp_Item (GroupID int, ItemID int, RuleSetID int, PRIMARY KEY (GroupId, ItemId))
GO

ALTER TABLE [dbo].[Grp_Item] ADD CONSTRAINT [FK_Grp_Item_Grp] FOREIGN KEY([GroupID]) REFERENCES [dbo].[Grp] ([GroupID])
GO
ALTER TABLE [dbo].[Grp_Item] ADD CONSTRAINT [FK_Grp_Item_Item] FOREIGN KEY([ItemID]) REFERENCES [dbo].[Item] ([ItemID])
GO
ALTER TABLE [dbo].[Grp_Item] ADD CONSTRAINT [FK_Grp_Item_Ruleset] FOREIGN KEY([RulesetID]) REFERENCES [dbo].[RuleSet] ([RulesetID])
GO

这是我称为read_file函数的函数:

#include "functions.h"
#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int read_file(FILE *fp, char words[][MAX_WORD_SIZE + 1], int size) {
  int i=0;int j=0;
  size_t count=MAX_WORD_SIZE;
  char* line=malloc(MAX_WORD_SIZE);
  
  while(getline(&line,&count,fp)!=-1){
    for(;count>0;count--,j++){
      sscanf(line,"%c",&words[i][j]);
    }
    i++;
  }
  int totalNums = i;
  int totalNum = j;
  if (i<size){
    return 1;
  }
  
  
  fclose(fp);
  return 0;
}    

0 个答案:

没有答案
相关问题