C - 分配

时间:2017-10-14 20:36:10

标签: c linux terminal segmentation-fault po

大家好,我这里有问题。我正在编写一个C代码,用于从txt文件中读取并从此txt内的信息创建索引表。我正在使用getchar()函数读取txt文件,并在我的“ch”变量中逐个获取每个char。当我运行我的程序时,我正在终端上进行分段错误错误。这是所有代码,我评论了代码行,我正在考虑问题,并与我的问题相关:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct{ // Here is my structure of Index Table
char name[10]; // Here is my char array for storing the name data from file
int key;
} fileIndex;

int main(int argc, char *argv[])
{

int i, k=0, j=0, lines=0, offset=0;
char ch;

FILE *pFile;

pFile= fopen("/etc/passwd","r");



if (pFile == NULL)
{
fprintf(stderr, "Failed to open file.\n");
exit(1);
}


while(!feof(pFile))
{

ch = fgetc(pFile);

if(ch == '\n')
{
lines++;
}
}

fileIndex *index = (fileIndex *)malloc(lines);

rewind(pFile);

index[0].key=0;

while(!feof(pFile))
{

ch = fgetc(pFile);
offset++;

if(ch == '\n'){
k++;
index[k].key=offset;}

if(offset==index[k].key+1){// And here I want to take the name information from my txt file
while(ch!=':'){
index[k].name[j]=ch;// Here I am assinging char values one by one to my char array's corresponding index.
j++;
    }
 }

}


}

请你帮我解决一下,我把它放在这里之前尝试了一切。谢谢..

0 个答案:

没有答案