Я объявил структуру в заголовке файла. Я присвоил значение переменной этого типа struct в том же файле. Я включил файл Ah в другой файл Bh, который будет выполнять код.
По какой-то причине, когда я пытаюсь получить доступ к значению переменной, он всегда сбрасывается. Есть проблема с моим кодом или это ссылка?
Поскольку я работаю со структурами, я хочу, чтобы первый узел структуры всегда был одинаковым (пустой вариант 1), я пытался использовать extern, но это не помогает.
Ах файл
using namespace std;
struct nodeChar
{
char character;
struct nodeChar *next;
struct nodeChar *previous;
};
extern nodeChar *firstChar = new nodeChar();
extern nodeChar *previousChar = new nodeChar();
extern nodeChar *sentinelCharacter = new nodeChar();
void addCharacterNode(nodeChar *newCharacter)
{
sentinelCharacter = firstChar;
if(firstChar->character == NULL)
{
firstChar = newCharacter;
}
else while(sentinelCharacter != NULL)
{
if(sentinelCharacter->next = NULL)
{
newCharacter->previous = sentinelCharacter;
sentinelCharacter->next = newCharacter;
break;
}
sentinelCharacter = sentinelCharacter->next;
}
}
Bh файл
#include <iostream>
#include <string>
#include "TextStructure.h"
#include <curses.h>
void option1()
{
printMenuOption1();
int x = 1;
int y = 7;
bool keepWriting = TRUE;
nodeChar *pressedCharacter = new nodeChar();
while(keepWriting)
{
int key = getch();
switch(key)
{
case '9':
keepWriting = FALSE;
clear();
break;
case '8':
saveFile();
printMenuOption1();
break;
case '7':
break;
default:
pressedCharacter->character = key;
addCharacterNode(pressedCharacter);
mvprintw(y, x, "%c", firstChar->character); /*This is where it prints a character.
It prints the key pressed. But when I write again, it should still print the first character, not the key pressed. And it prints the key pressed. */
if(x == 68)
{
x = 1;
y++;
} else
{
x++;
}
break;
}
}
}
Надеюсь, я правильно разместил вопрос. Не профи на C ++, любой совет хорошо принят.