码迷,mamicode.com
首页 > 其他好文 > 详细

在创建顺序表的时候出现的问题

时间:2014-12-14 22:42:45      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:c

调试的才能发现问题出现在哪里

#include <stdlib.h>
#include "Orderfist.h"

status InsertList_Sq(
	SqList L[]
	)				/* 在链表插入一个元素 */

{
	INT32 i32OSM = 1;
	UINT32 Insert_position = 0U, Insert_data = 0U, u32i = 0U, u32j =0U;	/* 定义一个无符号的位置插入变量,数据变量,和循环体变量 */

	i32OSM = OSM_Printf("请输入要插入的位置(非负数)和数据:");			/* 提示要输入的地方 */
	Insert_position = scanf_for();										/* 输入要插入的位置 */
	Insert_data = scanf_for();											/* 输入插入的数据 */

	L->u32length++;														/* 插入之后静态表的长度增加了一个 */
	for (u32j = L->u32length; u32j > (Insert_position - 1U); u32j--)					/* 在插入的那个位置之后进行每个数据向后移动一个使用循环体 */
	{
		(L + u32j)->elem = ((L + u32j) - 1U)->elem;								/* 将插入点之后的数据位置都向后移动一个 */
	}
	((L + Insert_position) - 1U)->elem = Insert_data;						/* 将输入的数据赋值给插入位置数据,插入位置之前的都是不变的*/
	
	for ( u32i = 0U; u32i < L->u32length; u32i++)							/* 使用循环体将数据进行打印 */
	{
		if ( 0U != (L + u32i)->elem)										/* 检测传入参数的有效性 */
		{
			i32OSM = OSM_Printf (" %d ", (L+u32i)->elem);			/* 全部打印出来 */
		}
	}
	return 0U;													
}
这里的L->u32length++;始终是1也就是没有传值。始终是初始化的时候那样的0。

现在的问题是如何解决将创建函数的L->u32length++ 通过主函数的赋值可以给插入函数


为了追求效率而使用结构指针做为函数参数:当需要保护数据、防止意外改变数据对指针const限定词。传递结构值是处理小型结构最常用的方法。






在创建顺序表的时候出现的问题

标签:c

原文地址:http://blog.csdn.net/u011046042/article/details/41929981

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!