笔记!

C语言——动态开辟字符串的malloc、realloc、free和memset函数 在C语言中,malloc、realloc和free是处理动态内存分配的重要函数,它们定义在头文件中。常用的数组定义一般占用的是栈的内存空间,我们可以利用这些函数在堆上面动态开辟字符串,以节省内存空间。这些函数允许程序在运行时根据需要分配或调整内存的大小,并在不再需要时释放内存。 阅读详情

1.在计算malloc这种手动分配的空间大小的字符串中,不能简单用strlen和sizeof来进行空间大小的计算,这两个都不能得到你想要的值。

如:

char *str = (char*)malloc(100);
memset(str,0,100);
memcpy(str,"hello",strlen("hello"));
printf("strlen = %d\n",strlen(str)); //strlen = 4
printf("sizeof = %d\n",sizeof(str)); //sizeof = 4

2.在运用memcpy和strcpy两个上面,后者是在复制的过程中遇到'\0'后自动停止复制拷贝,而前者是有多大复制多大。

strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。

memcpy提供了一般内存的复制。即memcpy对于需要复制的内容没有限制,因此用途更广。

3.wireshark抓取本地包

 
在进行通信开发的过程中,我们往往会把本机既作为客户端又作为服务器端来调试代码,使得本机自己和自己通信。但是wireshark此时是无法抓取到数据包的,需要通过简单的设置才可以。 
      具体方法如下: 
      ①:以管理员身份运行cmd 
      ②:route add 本机ip mask 255.255.255.255 网关ip 
      此时再利用wireshark进行抓包便可以抓到本机自己同自己的通信包   
在命令行提示下面输入: route add 192.168.10.10 mask 255.255.255.255 192.168.10.1 metric 1 就这么简单!其中192.168.10.10是自己的IP,192.168.10.1是自己的网关 

使用完后使用delete替换add将这个给删除掉,不然每次本机包都往外面兜一圈再回来费时间。

4.当你频繁读写文件的时候,Linux内核为了提高读写性能与速度,会将文件在内存中进行缓存,这部分内存就是Cache Memory(缓存内存)

5.C++中的c_str()的使用,这个函数主要针对的就是C++的string类型的字符串,具体使用方式如下:

语法: 

const char *c_str();
c_str()函数返回一个指向正规C字符串的指针, 内容与本string串相同. 
这是为了与c语言兼容,在c语言中没有string类型,故必须通过string类对象的成员函数c_str()把string 对象转换成c中的字符串样式。
注意:一定要使用strcpy()函数 等来操作方法c_str()返回的指针 
比如:最好不要这样:
char* c; 
string s="1234"; 
c = s.c_str(); //c最后指向的内容是垃圾,因为s对象被析构,其内容被处理
应该这样用:

char c[20]; 
string s="1234"; 
strcpy(c,s.c_str()); 
这样才不会出错,c_str()返回的是一个临时指针,不能对其进行操作


再举个例子
c_str() 以 char* 形式传回 string 内含字符串
如果一个函数要求char*参数,可以使用c_str()方法:

string s = "Hello World!";
printf("%s", s.c_str()); //输出 "Hello World!"

6.UDP可靠传输

可靠UDP传输从来都不是高效率可靠传输的代名词,影响传输效率的最重要因素在于,sendto函数,每次只能投递一个mtu长度的包,频繁的系统调用极大的影响了极限性能。

7.UDP丢包重传

针对UDP丢包重传一个解决方案:让接收端发送ACKknowledge包,发送方维护两个队列:已发送但未确认,已确认。
使用定时器来做,简单说就是在传包的时候把时间记住,接收端在接收到包以后回复给发送端,发送端收到确认包以后就把这个时间清0,;发送端在发送出数据以后定时查这个事件,如果这个时间大于某个值,就说明服务器没有收到包,这样就确定需要重传。

8.一般情况下:对于海量数据传输(例如文件传输)不应该使用UDP。因为这么做除了上一点要求的特性外,还要求把窗口式流量控制、拥塞避免和慢启动这些特性也加到应用程序中,意味着我们是在应用程序中再造TCP。我们应该让厂商来关注更好的TCP性能,而自己应该致力于提升应用程序本身。
这些规则存在例外,尤其是在现有的应用程序中。举例来说,TFTP就用UDP传送海量数据。TFTP选用UDP的原因在于,在系统自举引导代码中使用UDP比使用TCP易于实现,而且TFTP只用于在局域网上引导系统,而不是跨广域网传送海量数据。不过这样一来就要求TFTP自含用于确认的序列号字段,并具备超时和重传能力。
MoveIt!入门教程-笔记 MoveIt!入门教程笔记   1、如何使用现成的已经封装好的  moveit interface 一般的 moveit的接口如下所示moveit::planning_interface::Movegroup  即为c++ 中的包 --- 类 --- 对象--- 类型 --- 方法   如何查找及使用? 如 类 moveit_msgs, 他的对象类型有(百度可查)http://wiki.ros.o... 阅读详情

相关推荐

ROS学习笔记17:MoveIt!机械臂控制——实战笔记

ROS学习笔记17:MoveIt!机械臂控制

pvmsmfchcs的博客 1208

sizeof运算符、malloc函数及free函数

一、sizeof运算符的用法 1.sizeof运算符给出某个类型或变量在内存中所占据的字节数。 int a; sizeof(a)=4; //sizeof(int)=4; double b; sizeof(b)=8; //sizeof(double)=8; 2.数组的sizeof值等于数组所占用的内存总字节数。 如:char a[] = "yes"; sizeof(a); //...

weixin_33690367的博客 727

ESP32S3电池电量监测实战:从分压电路到IDF组件配置(附GitHub源码)

本文详细介绍了ESP32S3电池电量监测的完整实战方案。从硬件分压电路的电阻选型、滤波设计,到软件层面利用ESP-IDF的ADC校准机制提升精度,并重点讲解了如何集成bat_monitor开源组件快速实现电压采集、电量计算、充电检测与事件通知。文章提供了从原理到调试的完整指南和GitHub源码,帮助开发者构建稳定可靠的物联网设备电源管理系统。

ee345的博客 530

malloc & 字符串

malloc内存管理机制: ​ 当首次使用malloc申请内存时,malloc会向操作系统申请内存,操作系统会直接给malloc分配33页(一页 = 4096字节)内存交给malloc管理。但是不意味着你可以越界访问,因为malloc可能会把使用权分给”其他人“,这就会导致脏数据。 每个内存块之间都会有一些空隙(4~12),这些空隙一些是为了内存数据对齐(加快读取),其中一定会有4个字节是用于记录malloc维护信息,这些维护信息决定了下次malloc分配内存的位置,以及借助这个维护信息计算出每个内存块的大

xiaoqiudao的博客 3076

告别反复格式化!用Ventoy制作2025年终极启动盘,Windows/Linux/macOS一网打尽

本文详细介绍了如何使用Ventoy制作2025年终极多系统启动盘,彻底告别反复格式化U盘的烦恼。Ventoy通过创新的引导加载器架构,允许用户在一个U盘内同时存放并直接启动Windows、Linux、macOS等多种系统镜像和WePE等维护工具,实现真正的非破坏性管理和极高的U盘利用率。文章涵盖从安装配置、镜像库构建到安全启动设置等全流程实战指南。

weixin_29280219的博客 241

超详细版!Obsidian+Claude+Skills+云同步,打造智能 AI 知识库

本文介绍如何搭建高效的AI知识管理系统,将Obsidian笔记工具与ClaudeAI助手深度整合。通过ClaudeCode安装配置、ObsidianSkills插件添加和坚果云同步设置,实现本地存储安全性与云端便捷性的完美结合。该系统支持智能笔记整理、知识图谱可视化、智能搜索问答和内容创作辅助等功能,使静态笔记转变为能自动分析关联、处理复杂结构的"活"知识库。详细步骤包括工具准备、环境配置、插件安装和云同步设置

2301_79998006的博客 1080

C语言常见API,memset,malloc,realloc,free,strlen,strcpy,strncpy,assert,strcat等等

函数比较的是字符串的字典序,即按字符逐个比较字符串中相应位置的字符,直到找出它们之间的差异。如果找到了差异,则返回它们的 ASCII 码值之差,如果直到其中一个字符串结束时都没有找到差异,则返回它们长度的差。需要注意的是,malloc函数在动态分配内存时并不会自动初始化分配的内存空间,因此,我们需要自己对分配的内存空间进行初始化。函数会分配一个新的具有所需大小的内存空间,并将原来分配的内存中的数据复制到新内存中,然后释放原来分配的内存空间,最后返回新的内存地址。如果需要缩小或删除之前分配的内存空间,则。

weixin_73424933的博客 279

rk3568 RGMII KSZ8795 MAC TO MAC

参考《Rockchip_Developer_Guide_Linux_MAC_TO_MAC_CN.pdf》

明天乌儿会歌唱 6493

动态内存申请

申请的内存,一定不要把首地址给丢了,在不用的时候一定要释放内存。

六月悉茗的博客 561

QEMU理解与分析系列(11):QEMU内存机制

在物理机上,CPU 对于内存的访问在保护模式下通过分段分页的形式实现。在该模式下,CPU 访问时使用的是虚拟地址,通过 MMU 映射到物理地址,将虚拟地址转换为物理地址才能访问实际的物理内存。同样的,虚拟机模拟的物理机同样需要有上述的机制,也需要有从虚拟地址到物理地址的转换。这里需要注意,模拟的物理机的物理地址本质上是 qemu 的虚拟地址。

swh547的博客 49

[Dify] 法律文档解析助手怎么做才敢用?先把条款提取、依据核对和人工复核分开

这篇文章围绕用 Dify 搭建法律文档解析助手时最容易被忽略的可靠性问题展开:文档能上传、模型能总结,并不等于结果就能直接用于法务判断。文章会从文档抽取、条款定位、召回片段核对、结构化输出和人工复核几个角度梳理设计思路,适合正在用 Dify 处理合同、制度、招投标文件或企业知识库问答的读者阅读。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 9379

探索p!n:轻盈通知栏笔记应用

探索p!n:轻盈通知栏笔记应用 在快节奏的数字生活中,记录灵感和待办事项变得尤为重要。今天,我们为你介绍一款简约而不简单的笔记工具——p!n,它巧妙地利用了手机通知区域,让记笔记这一日常任务变得更加便捷与高效。 项目介绍 p!n是一款设计极简的笔记应用,旨在通过手机的通知功能让你随时随地快速捕捉思绪。无论是闪现的想法还是紧急的待办事项,只需几秒钟,就能以通知的形式保存下来。这款应用完全遵循Mat...

gitblog_00100的博客 384

Open-Sora代码详细解读(1):解读DiT结构

目前开源的DiT视频生成模型不是很多,Open-Sora是开发者生态最好的一个,涵盖了DiT、时空DiT、3D VAE、Rectified Flow、因果卷积等Diffusion视频生成的经典知识点。本篇博客从Open-Sora的代码出发,深入解读背后的原理。

沉迷单车的追风少年 2264

《啊哈!算法》读书笔记

零零散散花了一周的时间阅读了《啊哈!算法》。这本书内容相对基础,适合初学者时阅读(当然,大神也可以温故而知新)。《啊哈!算法》这本书中的算法举例贴近生活,语言诙谐幽默,不会让人产生枯燥感,并配有很多幽默的插图。算法讲解通俗易懂,并配有详细C语言代码和注释,是一本初学者不易错过的好书。注:书作者偶尔会在书中卖萌的。已掌握的知识点在下面不在赘述,只记录觉得需要记忆整理的东西,作为自己的读书笔记。包括一些小技巧、新概念、生疏算法等。内容仍比较杂乱,需要进一步细化整理。 《啊哈!算法》中涉及的数据结构有栈、队列、链

h532600610的博客 6871

Codex 100个真实案例 - 用AI绘制CAD机械图纸(工程师看了直呼内行)

本案例将展示如何用 Codex 生成 Python 脚本,通过 `ezdxf` 库绘制标准 DXF 格式的 CAD 机械图纸。我们会从零开始,逐步实现直线、圆、圆弧、标注等基本图形元素,最终绘制出一张包含主视图、俯视图、尺寸标注、标题栏和技术要求的完整法兰盘零件图。还会演示参数化批量生成不同规格零件图和自动 BOM 物料清单,生成的 DXF 文件可直接在 AutoCAD、FreeCAD 中打开。全程用自然语言驱动 Codex,工程师看完直接上手!

yueyeguzhuo的专栏 2067

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【moveit!】ROS学习笔记

该位姿的机器人姿态是六轴角度都处于0位置的位置,可以理解为是机器人的初始位姿。再点击“Add Links”按钮,在左侧选 择gripper group需要包含的三个link,在右侧的机器人模型中可以看到选 中的link变成了红色。如果机器 人是移动的,则虚拟关节可以与移动基座关联,但这里设计的机械臂是 固定不动的,所以无需设置虚拟关节。launch文件中是各种启动文件,最主要的是move_group.launch,各种demo都是调用这个文件,是moveit运行的核心文件。首先创建机械臂本体的arm组。

zhuyan108的博客 900

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Java 学习笔记0 Hello,World!

Java 学习笔记0 Hello,World!编写及运行

小喾苦的博客 163

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

清晰易懂!关于PS入门的超详细笔记!

给大家分享一篇关于PS入门的超详细笔记!原理讲解清晰明了,虽不是新版本解析,但都是新手学习PS必掌懂的一些知识点,灰常的实用,转走收藏学习!来源:PS学堂 转载于:https://juejin.im/post/5c0f87cae51d4557614f2997...

weixin_33991418的博客 455

ROS复习笔记9:MoveIt!机械臂控制

复习

qq_71734878的博客 1147

有道云笔记桌面挂件android,有道云笔记网页版全面更新!更有Android,pc新版享不停!...

新年伊始,有道云笔记诸端都悄然发生了变化。各位笔记亲有木有注意到嘞。快乐跟小编一起看看都有哪些新年贺礼吧~~bingogo。新年第一弹:网页版全新升级,完善多级目录功能从现在开始,不用下载客户端,直接登录 note.youdao.com 就可以使用有道云笔记诸多强大的功能啦!(可能是史上最好用的在Web版云笔记软件)此次有道云笔记Web版的更新主要包括以下几个方面!1、全面支持Office、PDF...

weixin_39639919的博客 1250

计算机职称一般考什么,中级会计职称备考记笔记这样记,针不戳!

大家应该在备考中级会计职称时都会记笔记,但是真正能提高学习效率的笔记却不是很多,到底是为什么呢?可能是因为我们的笔记方式不对,高顿中级会计老师整理了学霸的笔记以及记笔记的技巧,分享给大家,一起看下文吧!学霸笔记展示:这种笔记属于便携式笔记,学一章记一章的笔记,完成一轮复习时再将所有笔记重新装订一起。笔记类型大致可分为3种类型,除了这位学霸做的这种便携式笔记,还有常规式笔记和教材或讲义上直接标注型的...

weixin_42565971的博客 140

Python学习笔记--01、Hello World!

最近想学习一下Python,同时也写一些博客做一些笔记。 学习任何语言,首先都要准备好环境。因为Python是解释执行语言。首先去官网下载Python解释器:https://www.python.org/downloads/。然后安装,安装路径可选为C:/Python/下,切忌不要安装在C:/program files,因为他不识别这么长的路径。 安装好环境之后,就是第一个应用了“Hello

polo_longsan的专栏 541

《啊哈!算法》笔记 第二章 栈、队列、链表

1 队列 (解密QQ号) 不用结构体: #include<stdio.h> int main() { int q[102]={0,6,3,1,7,5,8,9,2,4},head,tail; /*初始化队列*/ head=1; tail=10; //队列中已经有9个元素了,tail指向队尾的后一个位置 while(head<tail) //当队列不为空的时候执行循环 { printf("%d ",q[head]); //打印队首并将队首出队 head++;

stone__student的博客 380

vue音乐笔记_哇哦!原来爆款视频笔记都是这么来的!

之前有提到过小红书一直都在扶持视频笔记的流量,也有越来越多的创作者愿意尝试用视频笔记的形式来发布内容、分享生活。那么在我们创作小红书视频笔记的时候,有没有什么好方法可以快速get爆款视频呢?到底什么样的视频笔记才会更受小红书用户们欢迎呢?今天就为大家总结了一下,小红书爆款视频笔记的一些特点和小技巧,可以供大家参考。01 视频笔记时长虽然小红书目前可以上传最长10分钟的视频,但普遍的单个...

weixin_42303282的博客 400

这四大笔记整理法,是我用过最牛的笔记方法!

每一种方法都有其独特的价值,无论你是学生还是职场人,希望看到这篇文章的每一位都能积极尝试这些笔记技巧,不仅是为了提高学习成绩,提升职场表现力,更是为了培养终身学习的习惯,将知识转化为实际行动,推动个人的成长和发展。同时,自学的时候使用康奈尔笔记法,可以帮你归纳整理学习材料,提高学习效率。随着开学季的到来,现在正是一个重新审视学习习惯和笔记技巧的好时机,趁着这个机会,给大家安利几个经典的笔记整理方法,也是整理思维的好方法,不论你是学生还是职场人,这些方法都可以让你在整理笔记和梳理思路上游刃有余!

m0_69512897的博客 4347

探索趣味编程:解冻胡萝卜,温暖你的笔记本!

探索趣味编程:解冻胡萝卜,温暖你的笔记本! 在寻找那个既能解决生活小困扰又充满乐趣的编程奇技吗?让我们一起来揭开【Laptop, thaw my carrots!】这个开源项目的神秘面纱,它或许能给你的冬日带来一丝意想不到的暖意。 项目介绍 想象一下,寒冷的日子里,一袋冷冻的胡萝卜成为你急需解决的问题。无需担心,因为有了thaw-carrots——一个既奇特又实用的Node.js包,它以一种新颖的...

gitblog_00360的博客 484
上一篇: C++解析JSON的好文章
下一篇: 结构体字节对齐
pingd
博客等级 码龄15年 60粉丝 54原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值