samedi 26 novembre 2016

C++11 QtCreator: long integer not correctly read into variable

I have a singly linked list of type Node that is defined like this:

struct Item {
    long date;
    bool isPaid;
};
struct Node{
    Item item;
    Node* next;
};

Where "date" is a field that will take the form "ddmmaaaa" (that is, first two digits for the day, second two digits for the month, last four digits for the year). However, when I try to add a few nodes, I get a different number inserted:

newItem=new Node;
newItem->item.date=01062016;
newItem->item.isPaid=true;
newItem->next=nullptr;
list=insertItem(list, newItem);

(insertItem is my function that takes a pointer to a list head and a pointer to a new node and inserts the node in the list).

I get the right number if I try to assign something like 13042016 to the long field:

this is right

However, when I try to assign 01062016, I get 287758 instead:

this is wrong

I'm not trying to use a different approach (I know the date thing is weird, I just need it this way). Only to understand why I get strange numbers when I add a date that perfectly fits in a long variable. I'm using Qt Creator 2.7.2 based on Qt 5.1.0.

Aucun commentaire:

Enregistrer un commentaire