2013-09-19 2 views
1

Я получаю следующие ошибки:Получение ошибки с/структур, связанных списков

A1.c:1:2: error: invalid preprocessing directive #inlcude
A1.c:29: error: two or more data types in declaration specifiers
A1.c: In function 'main':
A1.c:30: error: incompatible types in assignment
A1.c: In function 'insert':
A1.c:45: warning: incompatible implicit declaration of built-in function 'printf'
A1.c:54: warning: incompatible implicit declaration of built-in function 'printf'

Для следующего кода: (имейте в виду, что много переменных для этого в настоящий момент не используется в качестве его неполным и нуждается много работы, но я не могу получить его скомпилировать, чтобы проверить, работает ли мой код или нет, очевидно, это не)

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

#define MAXL 100   //max Last name field length 
#define MAXR 100   //max Rest field length 
#define MAXM 5    //max message-string length e.g., "FIND" 
#define MAXI 520   //max input line length 

typedef char Last_t[MAXL]; 
typedef char Rest_t[MAXR]; 

void insert(char last[],char rest[]); 

//DEFFINITION OF OUR NODE or CONTACT 
typedef struct NodeTag { 
    Last_t  Last; 
    Rest_t  Rest; 
    struct NodeTag *Link; 
} Node; 

//DEFINITION OF CONTACT LIST 
typedef struct { 
    Node *Index[26]; 
    Node *L; 
} ContactList; 

//STATIC CONTACT LIST INITIATED 
static ContactList con ; 

int void main() { 
con.Index= NULL; 
con.L = NULL; 
insert("Amir", "S"); 


} 

//create a node and insert it to the List con of ContactList 
void insert (char last[], char rest[]) { 
Node *node, *next, *prev; 
node= malloc (sizeof(Node)); 
strcpy(node->Last,last); 
strcpy(node->Rest,rest); 
if (con.L == NULL){ 
    node->Link=con.L; 
    con.L = node ; 
    printf("Added %s %s\n",last,rest); 
    } 

else { 
    Node *current = con.L ; 

    while(current->Link !=NULL) { 
    if (current->Link == NULL) { 
      current->Link = node; 
      printf("Added %s %s\n",last,rest); 

    } 
    current = current->Link; 
    } 
} 

} 

ответ

0

Первая линия - это #include нЕ #inlcude

Как может я t int int void main()? Это должно быть либо int, либо void.

con.Index = NULL недействителен. Индекс является указателем const, а NULL является void *. По той же причине вы не можете делать Index ++. Вы не можете изменить значение индекса.

Предупреждения должны исчезнуть при правильной линии 1.

Все это легко исправимо, если вы читаете код. Вы пытались это сделать?

Смежные вопросы