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

网站建设 系统 排名/友情链接怎么做

网站建设 系统 排名,友情链接怎么做,游戏开发平台,企业网站的必要性全文目录: 开篇语前言一、C语言内存函数1. **malloc 函数**语法:示例代码: 2. **calloc 函数**语法:示例代码: 3. **realloc 函数**语法:示例代码: 4. **free 函数**语法:示例代码&a…

全文目录:

    • 开篇语
    • 前言
    • 一、C语言内存函数
      • 1. **`malloc` 函数**
        • 语法:
        • 示例代码:
      • 2. **`calloc` 函数**
        • 语法:
        • 示例代码:
      • 3. **`realloc` 函数**
        • 语法:
        • 示例代码:
      • 4. **`free` 函数**
        • 语法:
        • 示例代码:
    • 二、大小端字节序
      • 1. **字节序(Endianness)**
      • 2. **大端字节序(Big Endian)**
      • 3. **小端字节序(Little Endian)**
      • 4. **如何判断字节序**
        • 示例代码:
      • 5. **字节序的影响**
    • 三、总结
    • 文末

开篇语

哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云/阿里云/华为云/51CTO;欢迎大家常来逛逛

  今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。

  我是一名后端开发爱好者,工作日常接触到最多的就是Java语言啦,所以我都尽量抽业余时间把自己所学到所会的,通过文章的形式进行输出,希望以这种方式帮助到更多的初学者或者想入门的小伙伴们,同时也能对自己的技术进行沉淀,加以复盘,查缺补漏。

小伙伴们在批阅的过程中,如果觉得文章不错,欢迎点赞、收藏、关注哦。三连即是对作者我写作道路上最好的鼓励与支持!

前言

  在C语言编程中,内存管理是非常重要的一个概念。C语言提供了许多与内存操作相关的函数,帮助程序员在运行时动态地管理内存。此外,计算机系统通常有两种不同的字节序(大小端字节序),这对我们理解数据如何在内存中存储和传输至关重要。在这篇文章中,我们将深入探讨C语言中的内存函数以及大小端字节序。


一、C语言内存函数

C语言通过标准库提供了许多函数,用于动态分配、释放、复制和设置内存。常用的内存函数有:malloccallocreallocfreememcpy 等。

1. malloc 函数

malloc(memory allocation)函数用于动态分配指定字节数的内存。

语法:
void* malloc(size_t size);
  • 参数size 是要分配的字节数。
  • 返回值:返回一个指向分配内存块的指针。如果分配失败,返回 NULL
示例代码:
#include <stdio.h>
#include <stdlib.h>int main() {int* ptr = (int*)malloc(5 * sizeof(int));  // 分配5个int类型大小的内存if (ptr == NULL) {printf("内存分配失败\n");return 1;}// 使用分配的内存for (int i = 0; i < 5; i++) {ptr[i] = i + 1;printf("%d ", ptr[i]);}free(ptr);  // 释放内存return 0;
}

2. calloc 函数

calloc(contiguous allocation)函数用于分配内存并初始化为零。它与 malloc 的不同之处在于,它会将分配的内存区域初始化为零。

语法:
void* calloc(size_t num, size_t size);
  • 参数num 是要分配的元素数量,size 是每个元素的大小。
  • 返回值:返回一个指向分配内存块的指针。如果分配失败,返回 NULL
示例代码:
#include <stdio.h>
#include <stdlib.h>int main() {int* ptr = (int*)calloc(5, sizeof(int));  // 分配5个int类型大小的内存并初始化为零if (ptr == NULL) {printf("内存分配失败\n");return 1;}// 使用分配的内存for (int i = 0; i < 5; i++) {printf("%d ", ptr[i]);  // 输出为0,因为calloc初始化了内存}free(ptr);  // 释放内存return 0;
}

3. realloc 函数

realloc(reallocation)函数用于调整已分配内存块的大小。如果原始内存块的大小不足,可以使用此函数来重新分配一个更大的内存块。

语法:
void* realloc(void* ptr, size_t size);
  • 参数ptr 是指向已分配内存块的指针,size 是新的内存块大小。
  • 返回值:返回一个指向新分配内存块的指针,如果重新分配失败,则返回 NULL
示例代码:
#include <stdio.h>
#include <stdlib.h>int main() {int* ptr = (int*)malloc(5 * sizeof(int));  // 分配5个int类型大小的内存if (ptr == NULL) {printf("内存分配失败\n");return 1;}// 使用原始分配的内存for (int i = 0; i < 5; i++) {ptr[i] = i + 1;}// 重新分配更大的内存ptr = (int*)realloc(ptr, 10 * sizeof(int));  // 调整为10个int类型大小的内存if (ptr == NULL) {printf("内存重新分配失败\n");return 1;}// 使用重新分配后的内存for (int i = 5; i < 10; i++) {ptr[i] = i + 1;}for (int i = 0; i < 10; i++) {printf("%d ", ptr[i]);}free(ptr);  // 释放内存return 0;
}

4. free 函数

free 函数用于释放之前通过 malloccallocrealloc 分配的内存。释放内存后,指针仍然存在,但不再指向有效的内存区域,因此需要将指针设置为 NULL 来避免悬空指针问题。

语法:
void free(void* ptr);
  • 参数ptr 是指向要释放内存的指针。
示例代码:
int* ptr = (int*)malloc(5 * sizeof(int));  // 分配内存
free(ptr);  // 释放内存

二、大小端字节序

1. 字节序(Endianness)

字节序是指数据在内存中存储的顺序,特别是多字节数据类型(如intfloat等)。不同的计算机体系结构有不同的字节序规则,主要有两种类型:

  • 大端字节序(Big Endian):将数据的高字节存储在低地址位置,低字节存储在高地址位置。
  • 小端字节序(Little Endian):将数据的低字节存储在低地址位置,高字节存储在高地址位置。

2. 大端字节序(Big Endian)

在大端字节序系统中,数据的高位字节存储在低地址处,低位字节存储在高地址处。例如,假设我们有一个0x12345678的整数,它在内存中的存储方式为:

内存地址: 0x00    0x01    0x02    0x03
存储内容: 0x12    0x34    0x56    0x78

3. 小端字节序(Little Endian)

在小端字节序系统中,数据的低位字节存储在低地址处,高位字节存储在高地址处。例如,假设我们有一个0x12345678的整数,它在内存中的存储方式为:

内存地址: 0x00    0x01    0x02    0x03
存储内容: 0x78    0x56    0x34    0x12

4. 如何判断字节序

可以通过编写一个简单的C程序来判断当前系统的字节序:

示例代码:
#include <stdio.h>int main() {unsigned int num = 1;unsigned char* byte = (unsigned char*)&num;if (byte[0] == 1) {printf("小端字节序\n");} else {printf("大端字节序\n");}return 0;
}

5. 字节序的影响

字节序的不同会影响数据的存储方式,特别是在不同计算机系统之间进行数据交换时。例如,在进行网络编程时,数据通常需要使用网络字节序(大端字节序)进行传输。


三、总结

在C语言中,内存管理是一个关键的方面,使用malloccallocreallocfree等函数可以有效地分配和释放内存。此外,理解大小端字节序对于跨平台开发和网络编程非常重要,因为不同的计算机体系结构可能使用不同的字节序。

通过了解内存函数和字节序,开发者能够更好地管理内存,并编写高效且可移植的C程序。

… …

文末

好啦,以上就是我这期的全部内容,如果有任何疑问,欢迎下方留言哦,咱们下期见。

… …

学习不分先后,知识不分多少;事无巨细,当以虚心求教;三人行,必有我师焉!!!

wished for you successed !!!


⭐️若喜欢我,就请关注我叭。

⭐️若对您有用,就请点赞叭。
⭐️若有疑问,就请评论留言告诉我叭。


版权声明:本文由作者原创,转载请注明出处,谢谢支持!

http://www.lryc.cn/news/581060.html

相关文章:

  • 自己做鞋子网站/百度 营销推广费用
  • 免费的网站模板哪里有/seo排名优化是什么意思
  • 香港服务器做营销网站/网络营销的认知
  • 2017年政府网站集约化建设/互联网营销师在哪里报名
  • 济源网站制作/html简单网页设计作品
  • 青岛公司建设网站/每日一则小新闻
  • 网站建设十佳/google推广服务商
  • wordpress 仿主题下载/重庆百度推广seo
  • 纺织厂网站模板/最新地址
  • 上市公司做网站有什么用/广州网站排名优化公司
  • 广元网站建设/免费seo诊断
  • asp.net开发移动网站模板下载/怎么制作网站?
  • 网站站点建立/免费发布软文广告推广平台
  • 做网站网站关键词是什么/seo工程师是做什么的
  • 最权威的做网站设计哪家好/促销活动推广语言
  • wordpress安装不上主题/seo入门基础教程
  • 成都网站外包优化/宁波正规seo快速排名公司
  • 在网站制作完成后网站建设/谷歌seo搜索
  • app小程序网站开发是什么/semantic
  • 做的网站怎么让别人也能看到吗/市场监督管理局电话
  • 个人 申请域名做网站/seo建站要求
  • 网站交互图片怎么做/seo比较好的优化方法
  • 西青集团网站建设/怎么制作自己公司网站
  • 自己怎么做网站购买空间/怎么能在百度上做推广
  • tpt blog wordpress/西安seo托管
  • 自己搭建网站/网址怎么申请注册
  • 网站设计技术/网站自然优化
  • 全国知名网站排名/磁力搜索神器
  • 注册功能的网站怎么做/互联网广告营销方案
  • 网站建设的代码/公司免费推广网站