2013-10-05 2 views
-7

Как мне заставить это работать?Функции вызова из основного файла

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

     typedef struct node 
     { 
      char hexAdd; 
     int numOccur; 

      } 


     int main() 
     { 

     node arr[5]; 
     //arr[0]->numOccur = 2; 
     arr[1] = 2; 
     arr[2] = 3; 
     arr[3] = 4; 
     arr[4] = 5; 

     int n; 

      for(n = 0; n < 5; n++){ 
      printf("%d\n",arr[n]); 

      } 









       } 

Как я могу заставить его работать без структуры в этом файле? Я хочу иметь массив, состоящий из структур. Как мне получить доступ и изменить эти структуры?

+3

Подсказка: Не включать исходные файлы в другие исходные файлы. Вместо этого компилируйте их отдельно в * object file * и используйте компоновщик, чтобы связать их вместе, чтобы сформировать окончательный исполняемый файл. –

+1

Я полагаю, вы имеете в виду «как C справиться с этим» в вашем третьем абзаце. – Chazu

+0

Пожалуйста, предоставьте содержание structNode.h и structArr.c, иначе трудно понять, о чем идет речь. –

ответ

2

Я не уверен, что этот вопрос, но я исправил все ошибки в коде:

#include <stdio.h> 

typedef struct 
{ 
    char hexAdd; 
    int numOccur; 
} node; 

int main() 
{ 
    node arr[5] = {{'a', 2}, {'e', 3}, {'i', 5}, {'o', 7}, {'u', 11}}; 

    int n; 
    for(n = 0; n < 5; ++n) 
    { 
     printf("%c -> %d\n", arr[n].hexAdd, arr[n].numOccur); 
    } 

    return 0; 
} 
+1

Хорошо, спасибо за это, но в чем разница между помещением имени узла там и где у меня было это? Я знаю, что я сделал это в прошлом, как в моем примере, так почему же он не работает здесь? –

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