
C语言
C语言的知识点记录
持御
这个作者很懒,什么都没留下…
展开
-
strncpy一定要慎用!!!!!!
结论:strncpy(A,B,sizeof(A));这样写是不安全的。推荐snprintf!当B的内容长度超过A时,遇到\0停止,并且不会自动追加\0。snprintf会自动截断并追加\0。如果使用strncpy一定要手动追加\0代码测试:今天在温习基础知识的时候,发现一个strncpy不太注意的点。但是在工作中还经常中strncpy,现在想一想一身冷汗。使用strncpy和snprintf比对测试结果打印strncpy出错!!!!...原创 2021-06-30 10:24:37 · 2810 阅读 · 0 评论 -
pw_gecos的命名含义
getpwnam()函数就会返回一个指针,指向如下类型的结构,其中包含了与密码记录相对应的信息:pw_gecos 字段,其命名源于早期的 UNIX 实现,该字段所含信息原用于与运行GECOS(通用电器综合操作系统)的计算机进行通信。虽然这一用途早已过时,但其名称却得以沿用至今,只是将字段用途转而用于记录用户的相关信息。...原创 2021-05-30 22:58:30 · 422 阅读 · 0 评论 -
【Linux嵌入式】我传进去指针进行组包,为什么组包结果为空,但是在组包函数中存在的??
今天遇见了一个让我当时怀疑人生的问题。事情是这样的:产品出现了某行数据不显示问题。然后我跟踪代码,跟踪到了数据组包发送LCD的地方。奇怪的事情发生了,我传进去一个指针,将各种数组组包到这个指针地址上。在组包函数中,打印传入的指针,组包数据也都正常。组包完成,退出组包函数,执行发送函数的时候,发送的数据包是空的!!!!!奇怪的一匹。在组包函数中的末尾打印组包结果都是正常的。出来一调用,就为空了。=========================================.原创 2021-05-13 20:18:15 · 151 阅读 · 0 评论 -
C语言实现转置9*9字符数组
问题描述:有一个文本文件保存了9*9矩阵数据通过回车换行分隔行行内通过,分隔元素1-9的数字是有效元素,其他内容都认为是空要求1. 实现矩阵转置2. 矩阵内元素如果是数字进行1-9,2-8,3-7,4-6互相映射,即如果原来数字是1,改成9,如果是9改成1下面是矩阵 , , , ,1, , ,3, 5, ,4, , , , , , , , , ,5,3,8, ,9 ,8,9, , , , , , , , , , ,1,6, , , , ,5,9, ,3,1, ,原创 2021-04-11 16:01:28 · 1512 阅读 · 0 评论 -
编译分类
选择性编译:也就是我们常用的ifdefine防止头文件多次重复编译#ifdef AAA#else#endif动态编译:动态编译是使用的动态库文件进行编译gcc hello.c -o hello(一步到位)默认使用的是动态编译的方法静态编译:静态编译使用的静态库文件进行编译gcc -static hello.c -o hello静态编译和动态编译的区...原创 2020-03-14 23:48:13 · 553 阅读 · 0 评论 -
字符溢出
当一个字符加上一个大于256的数字的时候,其实是字符的ASCII码值加上了(一个数对256取余的结果)下面程序是对其验证(运行在Windows10环境的的codeblocks中)#include <stdio.h>#include <stdlib.h>int main(){ char ch='a'; char tem='a'; pr...原创 2020-03-06 22:35:17 · 983 阅读 · 0 评论 -
将一个字符串插入到另一个字符串的指定位置。
实现程序,将一个字符串插入到另一个字符串的指定位置。并将插入的结果显示在屏幕上。比如:将字符串”abc”插入到字符串”123456”的第三个位置,插入后的结果为:”12abc3456”插入成功返回0 失败返回 -1int fun(char *str,char *src,int n)//形参str为要插入的字符串,src为原字符串,n为插入的位置{ int src_len=0,s...原创 2020-03-13 09:36:28 · 2657 阅读 · 3 评论 -
字符串逆序
用到#include<string.h>的头文件void str_reverse(char *str){ int len,i ,j=0; char temp; len =strlen(str); //得到字符长度 for(i=len-1;i>=len/2;i--)//对换一半的次数,=是为了偶数情况 { t...原创 2020-03-12 22:50:14 · 132 阅读 · 0 评论 -
Linux音乐播放器项目
项目功能:读取lrc歌词, 调用mplayer播放器播放mp3歌词, 歌词实时显示 并且有歌词滚屏效果。 显示歌词进度表 在屏幕右侧显示一个字符动画ps(因个人现阶段水平有限,无法在程序中控制mplayer的开启和关断,故只播放一首歌。)效果图展示:项目主要过程: 文件的读取操作 歌词切割成句,按格式读取时间和歌词 把时间和歌词用结构体保存 创建链表,将...原创 2020-03-12 11:05:47 · 1388 阅读 · 3 评论 -
制作字符动画前期准备,及代码
首先你需要下载一段视频,并改成英文名字(方便文件读取操作) 下载FreeVideoToJPGConverter这个软件将视频切成一帧一帧的图片 下载图片转文本的软件ascgen2tpzzfh在使用的时候先导入一张图片,观察大小,别导出来了大小不对记录好大小再点击文件批量导入。导出后可以看到asii的文本文件做到这里前期的准备工作就完成了。软件连接:链接:https://p...原创 2020-03-12 12:28:06 · 1323 阅读 · 1 评论 -
LinuxC语言编程报错:.c文件错误:与‘函数名’类型冲突;.h文件附注:‘函数名’的上一个声明在此
出现这种错误是你声明的函数名和你的本体函数名里面有不同;将其改为一样的就ok了!原创 2020-03-11 09:23:07 · 1871 阅读 · 1 评论 -
双向链表的查找,排序程序
双向链表相对于单向链表区别在于双向链表保存了上一个的地址,而单向链表只保存了下一个的地址;这样的话其实双向链表就是一个圆形,固定的头是我们认为设定的双向链表在排序和查找时候,如果采用从两边开始查找或者排序的需要解决奇偶的问题,再考虑这个问题的时候建议拿出笔在草稿纸上画图。附上程序:#include <stdio.h>#include <stdlib.h>...原创 2020-03-02 23:08:57 · 1546 阅读 · 1 评论