当前位置: 首页 > news >正文

什么网站做调查能赚钱seo百度排名优化

什么网站做调查能赚钱,seo百度排名优化,创胜网络科技有限公司,做网站一天能接多少单这篇文章是在上期实现的通讯录基础上,增加了自动增容的功能,也解决了一开始通讯录自动开辟一个空间,可能会浪费空间,或者是信息过多无法增容的痛点,由于我们使用的是malloc这类函数来开辟空间,我们也需要来…

这篇文章是在上期实现的通讯录基础上,增加了自动增容的功能,也解决了一开始通讯录自动开辟一个空间,可能会浪费空间,或者是信息过多无法增容的痛点,由于我们使用的是malloc这类函数来开辟空间,我们也需要来释放空间,所以我们定义了一个销毁通讯录的函数.

上期文章 :1.0版本

 

1.增容策略 

这里我们也不用2倍或者是1.5倍增容,我们干脆就一开始给可以容纳三条信息的空间,后面每次增容两条信息的空间,主要是便于我们的测试,这里我们定义两个宏,便于我们以后来调整开始和增容的人数.

#define DEFAULT_SIZE 3
#define DEFAULT_INC 2

2.修改代码

2.1初始化

我们这里只需要修改三个地方的代码,首先是函数初始化的地方需要修改,我们需要将原来初始化为100的通讯录改成一开始初始化三个,然后每次扩容添加两个.

//静态版本
//void  InitContact(Contact* pc)
//{
//	assert(pc);
//	pc->sz = 0;
//	memset(pc->data, 0, sizeof(pc->data));
//}
//动态版本
void  InitContact(Contact* pc)
{assert(pc);pc->sz = 0;pc->capacity = DEFAULT_SIZE;pc->data = calloc(pc->capacity ,sizeof(PeoInfo));if (pc->data == NULL){perror("error");return;}
}

2.2 增容 

 接下来就是对添加函数进行修改了,这里我们将添加函数中的扩容功能封装成另一个函数,减少代码的耦合性,使得看起来更清爽.

//静态版本
//void AddContact(Contact* pc)
//{
//	assert(pc);
//	if (pc->sz == MAX)
//	{
//		printf("通讯录已满,无法增加");
//		return;
//	}
//	printf("请输入名字:>\n");
//	scanf("%s", pc->data[pc->sz].name);
//	printf("请输入年龄:>\n");
//	scanf("%d", &(pc->data[pc->sz].age));
//	printf("请输入性别:>\n");
//	scanf("%s", (pc->data[pc->sz].sex));
//	printf("请输入电话:>\n");
//	scanf("%s", (pc->data[pc->sz].tele));
//	printf("请输入地址:>\n");
//	scanf("%s", (pc->data[pc->sz].addr));
//	pc->sz++;
//	printf("增加成功\n");
//}//动态版本
void CheckCapacity(Contact* pc)
{if (pc->sz == pc->capacity){PeoInfo* ptr = (PeoInfo*)realloc(pc->data, (pc->capacity + DEFAULT_INC) * sizeof(PeoInfo));if (ptr != NULL){pc->data = ptr;pc->capacity += DEFAULT_INC;printf("增容成功");}else{perror("扩容失败");return;}}
}void AddContact(Contact* pc)
{assert(pc);CheckCapacity(pc);printf("请输入名字:>\n");scanf("%s", pc->data[pc->sz].name);printf("请输入年龄:>\n");scanf("%d", &(pc->data[pc->sz].age));printf("请输入性别:>\n");scanf("%s", (pc->data[pc->sz].sex));printf("请输入电话:>\n");scanf("%s", (pc->data[pc->sz].tele));printf("请输入地址:>\n");scanf("%s", (pc->data[pc->sz].addr));pc->sz++;printf("增加成功\n");
}

2.3 销毁空间 

 接下来我们对开辟的空间进行销毁,本质上就是对指针置空,释放空间即可.

void DestoryContact(Contact* pc)
{free(pc->data);pc->capacity = 0;pc->sz = 0;pc->data = NULL;
}

 

 

http://www.mnyf.cn/news/52389.html

相关文章:

  • 做服务型党员网站排名优化
  • 网站如何做单项链接厦门seo总部电话
  • 云阳网站制作网络渠道有哪些
  • asp.net做网站系统百度账号注册中心
  • php笔记网站小璇seo优化网站
  • 江苏建设委员会网站刷关键词排名seo软件
  • 湖北省精神文明建设委员会网站企业营销策划书
  • 网站上的彩票走势图是怎么做的百度竞价ocpc投放策略
  • 新手如何自己建网站安卓优化大师下载
  • 昆明做网站的野狼seo团队
  • 网站制作策划方案seo优化排名百度教程
  • 集团网站建设要多少钱网络营销学什么内容
  • 建站知乎公司网站模板
  • wordpress修改成中文广州seo快速排名
  • 成都 网站设计站长之家
  • 有没有专门做美食海报的网站百度关键词优化排名
  • 长沙网页制作模板的网站网站页面优化方案
  • 做网站logo用啥软件百度知道合伙人官网
  • 找做网站appseo排名点击手机
  • 海南省住房和城乡建设厅官网网站朝阳网站建设公司
  • sae wordpress 媒体库seo在线优化技术
  • 河南建设监理协会广州seo优化推广
  • 沧州网站建设培训seo域名综合查询
  • 国外做家谱的网站在哪里可以找到网站
  • 南京江北新区规划广东网站se0优化公司
  • 网站后台管理界面代码网络营销的主要特点有哪些
  • 卖辅助网站怎么做的网站seo诊断分析报告
  • 网站建设基本要求seo这个职位是干什么的
  • 网站怎么做跟踪链接做微商怎么找客源加人
  • 武汉网站建设组织百度新闻客户端