Работаю над компилятором, и я хочу распечатать таблицу символов.У меня есть структура узлов, и мне нужно получить доступ к глобальной переменной "lineCount".Когда я пытаюсь распечатать его в функции idPush, я получаю ошибку сегментации.Моя цель - собрать узлы в массиве или связать их вместе, а затем распечатать таблицу.
Я пытался напечатать ее в другом месте кода, но ошибка возникает.Я запускаю текстовый файл, который я включу, он очень короткий, чтобы убедиться, что он работает.
%option noyywrap
%{
#include <stdio.h> /* needed for printf() */
#define YY_DECL int yylex()
#define STRINGMAX 25
struct Node* nodes[100];
int lineCount = 0;
struct Node
{
int data;
char type[STRINGMAX];
char wordv[STRINGMAX];
struct Node *next;
};
void idPush(const char *new_data, char *typel){
// Allocate memory for node
struct Node* new_node = malloc(sizeof(struct Node));
strncpy(new_node->wordv, new_data, STRINGMAX-1);
new_node->wordv[STRINGMAX-1] = '\0';
strncpy(new_node->type, typel, STRINGMAX);
printf("allocated new node space\n");
printf(lineCount);
nodes[lineCount] = new_node;
if(lineCount > 0){
cleanNodes(nodes);
}
getData(new_node);
}
Выходные данные для lineCount должны быть равны нулю, так как это первый проход кода, но яполучить ошибку сегментации.