- 论坛徽章:
- 0
|
同一段代码为什么在gcc3.4和4.2下指针的长度会有变化?
附上代码gcc3.4下通过,但是在4.2下head要改成 head++ 才会有正确结果,个人认为4.2是正确的,不知道对部队
#include <stdio.h>
typedef int DATATYPE;
typedef struct node{
DATATYPE info;
struct node *next;
}LINKLIST;
LINKLIST *create()
{
int data;
LINKLIST *head, *tail,*node;
head=(LINKLIST *)malloc(sizeof(LINKLIST));
tail=head;
scanf("%d",&data);
node = (LINKLIST *)malloc(sizeof(LINKLIST));
node->info = data;
tail->next = node;
tail = node;
scanf("%d",&data);
node = (LINKLIST *)malloc(sizeof(LINKLIST));
node->info = data;
tail->next=NULL;
return head;
}
main()
{
LINKLIST *head;
head = create();
head += 2;
printf("%d\n",head->info);
head += 2;
printf("%d\n",head->info);
} |
|