我有以下内容:
typedef struct node{
long long int data;
struct node *next;
}node;
但是,当我试图存储一个大数字时:
long long int finalVal =139752196320796;
node *newNode = (node*)malloc(sizeof(node));
newNode->data = finalVal;
newNode->next = NULL;
我尝试打印出节点的值并得到:
-1744523748
有关为何发生这种情况的任何提示?
也许您使用%d
或%i
将您的值打印为整数。而是尝试使用ll
long long
修饰符,即%lld
或lli
。
printf("%lld", newNode->data);
printf("%lli", newNode->data);