使用typedef的一些问题
本帖最后由 Justin1 于 2020-11-1 11:16 编辑我这段程序到底是什么问题呢?
网上搜索了下也有点云里雾里。
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int data;
ListNode* next;
}ListNode;
void printNode(ListNode* l1);
void printNode(ListNode* l1) {
while (l1 != NULL) {
printf("%d\n", l1->data);
l1 = l1->next;
}
}
int main() {
ListNode* l1 = (ListNode*)malloc(sizeof(ListNode*));
l1->data = 0;
l1->next = NULL;
ListNode* p = l1;
ListNode* q;
int i = 1;
for (i; i <= 10; i++) {
q = (ListNode*)malloc(sizeof(ListNode*));
q->data = i;
p->next = q;
p = p->next;
}
printNode(l1);
return 0;
}
本帖最后由 jackz007 于 2020-11-1 12:42 编辑
#include <stdio.h>
#include <stdlib.h>
typedef struct Node {
int data ;
struct Node * next ;
} ListNode ;
void printNode(ListNode * l1)
{
while(l1) {
printf("%d\n" , l1 -> data) ;
l1 = l1 -> next ;
}
}
int main()
{
ListNode * l1 , * p , * q ;
for (int i = 0 ; i <= 10 ; i ++) {
q = (ListNode *)malloc(sizeof(ListNode)) ;
q -> data = i ;
q -> next = NULL ;
if(i) p -> next = q ;
else l1 = q ;
p = q ;
}
printNode(l1) ;
} #include<stdio.h>
#include<stdlib.h>
typedef struct ListNode{
int data;
struct ListNode* next;
}ListNode;
void printNode(ListNode* l1) {
while (l1 != NULL) {
printf("%d\n", l1->data);
l1 = l1->next;
}
}
int main() {
ListNode* l1 = (ListNode*)malloc(sizeof(ListNode));
l1->data = 0;
l1->next = NULL;
ListNode* p = l1, * q;
for (int i = 1; i <= 10; i++) {
q = (ListNode*)malloc(sizeof(ListNode));
q->data = i;
p->next = q;
p = p->next;
}
p->next = NULL;
printNode(l1);
return 0;
} jackz007 发表于 2020-11-1 12:17
为什么要分号对齐……? 永恒的蓝色梦想 发表于 2020-11-1 12:59
为什么要分号对齐……?
不为别的,只是为了整齐好看! jackz007 发表于 2020-11-1 13:11
不为别的,只是为了整齐好看!
{:10_250:} 第6行ListNode* next;
此时ListNode都还没有被typedef过,编译器不知道ListNode是什么
建议这样:typedef struct ListNode
{
...
}ListNode;
页:
[1]