Witam, pracuję obecnie nad małym programem w C++ natrafiłem natomiast na mały problem którego nie umiem rozwiązać.
Mianowicie chcę zbudować tablicę z elementów struct które reprezentują jakąś tam wartość. Chce to użyć jako uproszczoną wersję reprezentacji grafu.
Poniżej podaję to co dotychczas wyczarowałem:
struct NodeItem
{
int weight;
struct NodeItem *next;
};
void changeItem(int value, NodeItem **curr)
{
if ( (*curr) != NULL)
{
(*curr)->weight = value;
}
}
//dodaje Node do kolekcji
void addNode(int value, NodeItem **curr)
{
struct NodeItem *lastNode;
struct NodeItem *newNode;
newNode = (struct NodeItem*)malloc(sizeof(struct NodeItem));
newNode->weight = value;
if ((*curr) == NULL)
{
(*curr) = newNode;
(*curr)->next = (*curr);
}
else
{
lastNode = (*curr)->next;
(*curr)->next = newNode;
newNode->next = lastNode;
}
}
void displaySasiadow(NodeItem **curr)
{
while((*curr)->next != NULL)
{
cout<<(*curr)->weight<<" ";
*curr = (*curr)->next;
}
}
NodeItem* graph;
int main () {
graph = new NodeItem[6];
for (int i = 0; i<6; i++)
{
changeItem(i, &graph[i]);
}
}
Niestety wyżej wymieniony kod nie działa.
Problem jest tutaj z
changeItem. Mianowicie kompilator (visual studio)
mówi:
argument of type "NodeItem *" is incompatible with parameter of type "NodeItem **"
Możecie mi pomóc przeskoczyć ten problem? z góry dzięki za pomoc.