C语言(三)(1),全靠这套面试题,读完我这份《Android开发核心源码精编解析》面试至少多要3K

文章讲述了在C语言中如何动态分配和管理数组内存,包括使用`malloc`和`calloc`创建数组,以及`realloc`进行内存扩大和释放的示例,同时提到了内存分配的注意事项和提供了一些Android开发学习资源链接。
摘要由CSDN通过智能技术生成

//int i = 10;

//int a[i]

int len;

printf(“第一次输入数组的长度:”);

scanf(“%d”, &len);

//开辟内存

//int* p = malloc(len * sizeof(int));

int* p = calloc(len , sizeof(int));

//p是数组的首地址,p就是数组的名称

//给数组元素赋值(使用这一块刚刚开辟出来的内存区域)

int i = 0;

//初始化随机数发生器,设置种子,种子不一样,随机数不一样

//当前时间作为种子

srand((unsigned)time(NULL));

for (; i < len; i++)

{

p[i] = rand() % 100;

printf(“%d;%#x\n”, p[i], &p[i]);

}

printf(“-------------------------------------------------------------\n”);

int addLen;

printf(“输入数组增加的长度:”);

scanf(“%d”, &addLen);

//内存不够用,扩大刚刚分配的内存空间

//realloc 参数一:原来内存的指针,参数二:内存扩大之后的总大小

int* p2 = realloc(p,(len + addLen) * sizeof(int));

if (p2==NULL)

{

printf(“内存分配失败”);

}

//重新分配内存的两种情况:

//缩小:缩小的那一部分数据会丢失

//扩大:(连续的),

//1.如果当前内存段后面有需要的内存空间,直接扩展这段内存空间,realloc返回原指针

//2.如果当前内存段后面的空闲字节不够,那么就使用堆中的第一个能够满足这一要求的内存块,

// 将目前的数据复制到新的位置,并将原来的数据块释放掉,返回新的内存地址

//3.如果申请失败,返回NULL,原来的指针任然有效

//重新赋值

i = 0;

for (; i < len + addLen; i++)

{

p2[i] = rand() % 200;

printf(“%d;%#x\n”, p2[i], &p2[i]);

}

//多个内存释放,只需要释放最后一个内存就好了,前面的自动释放,或者已经释放过了

if (p2 != NULL)

{

free(p2);

p2 = NULL;

}

getchar();

}

//见图一效果图

//内存分配的几个注意细节

//1.不能多次释放

//2.释放完之后,给指针置NULL,标志释放完成

//3.内存泄漏(p重新赋值之后,再free,并没有真正释放内存)

void main() {

int len;

printf(“输入数组的长度:”);

scanf(“%d”, &len);

//开辟内存

int* p = calloc(len, sizeof(int));

int i = 0;

srand((unsigned)time(NULL));

for (; i < len; i++)

{

p[i] = rand() % 100;

printf(“%d;%#x\n”, p[i], &p[i]);

}

if (p != NULL)

{

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
img

Android高级架构师

由于篇幅问题,我呢也将自己当前所在技术领域的各项知识点、工具、框架等汇总成一份技术路线图,还有一些架构进阶视频、全套学习PDF文件、面试文档、源码笔记做整理一份资料。

需要的朋友可以**私信【学习】**我分享给你,希望里面的资料可以给你们一个更好的学习参考。

或者直接点击下面链接免费获取

Android学习PDF+架构视频+面试文档+源码笔记

  • 330页PDF Android学习核心笔记(内含上面8大板块)

  • Android学习的系统对应视频

  • Android进阶的系统对应学习资料

  • Android BAT部分大厂面试题(有解析)

好了,以上便是今天的分享,希望为各位朋友后续的学习提供方便。觉得内容不错,也欢迎多多分享给身边的朋友哈。

习的系统对应视频**

  • Android进阶的系统对应学习资料

[外链图片转存中…(img-dvBP1hoW-1710833638807)]

  • Android BAT部分大厂面试题(有解析)

[外链图片转存中…(img-7Ko03imZ-1710833638807)]

好了,以上便是今天的分享,希望为各位朋友后续的学习提供方便。觉得内容不错,也欢迎多多分享给身边的朋友哈。

  • 26
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值