2014-12-06 3 views
-1

Я получаю ошибку каждый раз, когда пытаюсь скомпилировать. Это, наверное, что-то глупое, но я не могу понять. Это ошибка: aldrbw01 @ древесины: ~/Project5 $ сделатьСтруктуры между файлами

НКУ -g -c -o crawler.c crawler.o

crawler.c: В функции 'гусеничный':

crawler.c: 12: ошибка: ожидается, '{' перед '*' лексем

марки: *** [crawler.o] ошибка 1

#include "crawler.h" 
#include "indexPage.h" 
//My Carwler 

int checkIndex(char* url, char** urlArray, const int MAX_N); 
int getLink(const char* srcAddr, char* link, const int maxLinkLength); 
char** missionControl(const char* FILE_NAME, const int Max_N); 


char** crawler(const char* FILE_NAME, const int Max_N){ 
char** URLs; 
queryHelper **structArray = malloc(sizeof(struct *wordControl)*50); 
URLs= missionControl(FILE_NAME, Max_N); 
return URLs; 
} 


char** missionControl(const char* FILE_NAME, const int Max_N){ 

const int MAX_BUFFER = 1000; 
    int cursor = 0; 
    int x; 
    char** urlArray = malloc(sizeof(char*)*Max_N); 

    for(x=0; x<Max_N; x++) { 
     urlArray[x] = NULL; 
    } 
    FILE *file = fopen(FILE_NAME, "r"); 
    char* url; 
    url = malloc(sizeof(char)*1000); 
    int* hoplimit; 
    hoplimit = malloc(sizeof(int)); 
    char* reader; 
    reader = malloc(sizeof(char)*1000); 
    int numHops; 
    while(fgets(reader,MAX_BUFFER ,file) !=NULL && cursor<Max_N) { 
    sscanf(reader, "%s %d", url, hoplimit); 
     numHops=0; 
     while (1) { 
      if (checkIndex(url, urlArray, Max_N)) { 
           indexMyStuff(url); 
       cursor++; 
      } 
      numHops++; 
      if(numHops<=*hoplimit && cursor<Max_N) { 

       if (!getLink(url,url,MAX_BUFFER)) { 
        break; 
       } 

      } else { 
       break; 
      } 
     } 
    } 


    free(url); 
    free(hoplimit); 
    free(reader); 
    fclose(file); 
    return urlArray; 
    } 




    //--------------------Header FILE for IndexPage------------------------// 
    #ifndef INDEX_H 
    #define INDEX_H 
    #include <stdlib.h> 
    #include <stdio.h> 
    #include <string.h> 
    #include <ctype.h> 

    struct wordControl{ 
     char** words; 
     int* countArry; 
    }; 
    typedef struct wordControl queryHelper; 
    queryHelper *indexMyStuff(char* argv); 
    #endif 

ответ

1

Это неправильный синтаксис для получения размера ара ointer к struct:

sizeof(struct *wordControl) 
//   ^
// There should be no asterisk between struct keyword and the tag 

Звездочка идет после имени типа, а не между struct и меткой:

sizeof(struct wordControl*)