(初级程序员)需要帮助:C中的链接列表

时间:2014-04-26 11:20:28

标签: c pointers linked-list

我正在尝试阅读一本书并看到一个字符出现在哪一行(总共64个字符),我必须使用链接列表。问题是我对链接列表很新,我对它们不是很有信心。此外,我不是最好的指针,我很容易与他们一起滑倒。

下面我添加了当前代码,该代码在第59行给出错误:“错误:下标值既不是数组也不是指针也不是向量”。

我已经阅读了几个人对类似问题的答案,但没有人帮助过。

如果有人能看到我出错的地方(我确定它不止一个地方)我真的很感激,如果你可以帮助我,如果我没有正确使用链表,那么欢迎建设性的批评因为我真的迷失在整个链表概念中。在任何人进入我的代码之前,我对编程相对较新,而且我已经教了几个月,所以我知道它远非完美。此外,如果有人对其当前状态有任何问题,我会在工作时将其修复为LOOK。在此先感谢:)!

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

 struct Characters{

    char names[65][50]; //This is the names array

};

struct Charline{
   char name;
   int line[60000];
   struct Charline * next;
};


char NameFun(){

    int i=0, choice;
    struct Characters c;

    FILE *fp = NULL; 
    fp = fopen("MisNames.txt", "r"); 

    for(i=0; i<65; i++){
        fgets(c.names[i], sizeof(c.names[i]), fp); //Gets each name and stores it as an element of an array
    }

    fclose(fp);
}

int LineScan(){

    struct Characters c;
    typedef struct Charline l;

    l *curr, *head;

    int i, j;
    int k=0;
    char string[300];

    FILE *fp = NULL; 
    fp = fopen("MisNames.txt", "r"); 

    head = NULL;

    for(j=0; j<=65; j++){

        curr = (l *)malloc(sizeof(l));
        curr->name[j] = c.names[j];
        curr->next  = head;
        head = curr;
        for(i=1; i<=68116; i++){

            printf("BUG");
            fgets(string, 250, fp);
            printf("BUG");

            if(strstr(string, c.names[j])!=0){
                curr = (l *)malloc(sizeof(l));
                curr->line[k] = i;
                curr->next  = head;
                head = curr;
                printf("Line: %d\n");
                printf("5BUG");
                k++;
            }

            else{
                continue;
            }


        }
    }



}


int main(){
    NameFun();
    LineScan();
    return 0;
}

1 个答案:

答案 0 :(得分:0)

我建议你从here开始。我记得在我想了解链接列表的时候开始使用它,这对我有很大帮助。