指针的低级错误!铭记!
来源:互联网 发布:淘宝店铺首页视频代码 编辑:程序博客网 时间:2024/05/22 05:04
typedef struct LNode{int data;struct LNode * next;}LNode, * LinkList;void CreateList1( LinkList &L, int n ){//建立n个元素的链表LL = ( LNode * ) malloc( sizeof( LNode ) );LinkList L1 = L -> next; //此赋值语句只是让L1和L->next指向一样,但当L1的内容改变时,L1和L->next就没有任何关系了。printf("Please input data:\n");for( int i = 0; i < n; i ++ ){L1 = ( LNode * )malloc( sizeof( LNode ) ); //此语句会使L1的内容改变即指向改变,而L->next还是原来的指向没变scanf("%d", & ( L1 -> data ) );char ch;scanf( "%c", &ch ); //吸收ENTERif( i < n ) L1 = L1 -> next;else L1 -> next =NULL;}}
CreateList1函数是要创建链表,可是出现了错误,因为LinkListL1 = L->next并不是引用,即L1的内容改变L->next内容不会改变,故L->next的指向一直不变,是系统默认的值。
正确做法:
void CreateList( LinkList &L, int n ){//建立n个元素的链表LL = ( LNode * ) malloc( sizeof( LNode ) );LinkList L1 = L;LinkList L2 = L;printf("Please input data:\n");for( int i = 0; i <= n; i ++ ){scanf("%d", & ( L1 -> data ) );char ch;scanf( "%c", &ch ); //吸收ENTERif( i < n ){ L1 -> next = ( LNode * )malloc( sizeof( LNode ) ); L1 = L1 -> next;}else L1 -> next =NULL;}}
- 指针的低级错误!铭记!
- 低级错误,野指针赋值
- 比较低级的错误
- 丢人的低级错误
- 一个低级的错误
- 很低级的错误
- 很低级的错误
- 低级的错误记录
- 低级的错误
- hibernate的低级错误
- Google犯的低级错误
- 又是低级的错误~
- 初级程序员的低级错误
- 关于tomcat的低级错误
- 我的低级错误(2)
- 写程序的低级错误
- 一个return的低级错误
- VC CListCtrl的低级错误
- Contest - 2013校赛暨华中邀请赛 Problem D: Tetrahedron Inequality
- POJ 1195 Open the Lock
- 博弈入门必备知识&&入门题 hdu1846 HDU1847 HDU1527 hdu2516 HDU1849 HDU1848 HDU1907
- 计算日期
- eclisp汉化教程
- 指针的低级错误!铭记!
- 现在编程语言还重要吗?
- Android代码累积
- 7.windbg script - 显示所有模块文件头
- android Mediaplayer各种属性和方法简单介绍
- hdu 3401 Trade
- 中华网拟7185万出售互联网业务给国广环球传媒
- NYoj 36 最长公共子序列[典型动态规划]
- java异常总结