2023年10月15日

C语言 通过union共存体释放常量指针指向的堆空间

摘要: union共存体中所有成员占用相同的内存空间。因为free函数参数是void *,常量指针是const void *,所以free函数释放常量指针时会因类型不同而失败。 #include <stdio.h> #include <malloc.h> #include <string.h> typede 阅读全文

posted @ 2023-10-15 10:31 王景迁 阅读(25) 评论(0) 推荐(0) 编辑

C语言 strdup函数把字符串复制到新空间

摘要: 头文件是string.h。根据传入的字符串参数,malloc分配空间并复制,返回首地址,该地址通过free来释放。 #include <stdio.h> #include <malloc.h> #include <string.h> int main() { char a[20] = "123"; 阅读全文

posted @ 2023-10-15 10:22 王景迁 阅读(6) 评论(0) 推荐(0) 编辑

valgrind分析内存

摘要: 安装valgrind yum install -y valgrind 分析内存泄漏 valgrind --tool=memcheck --show-leak-kinds=all --undef-value-errors=no --log-file=check --leak-check=full 二进 阅读全文

posted @ 2023-10-15 10:16 王景迁 阅读(11) 评论(0) 推荐(0) 编辑

主机字节序和网络字节序

摘要: 小端字节序和大端字节序 考虑一个16位整数,它由2个字节组成。内存中存储这两个字节有两种方法:一种是将低序字节存储在起始地址,这称为小端(little-endian)字节序;另一种方法是将高序字节存储在起始地址,这称为大端(big-endian)字节序。Inter x86、ARM核采用的是小端模式, 阅读全文

posted @ 2023-10-15 09:30 王景迁 阅读(52) 评论(0) 推荐(0) 编辑

C语言 likely和unlikely

摘要: likely和unlikely作用 在知道哪个发生概率更高的情况下,有if时使用likely和unlikely让代码运行更快。likely和unlikely是两个宏,当有if-else分支时告诉编译器,哪个条件更加有可能发生。likely代表if分支大概率会发生,unlikely代表if分支大概率不 阅读全文

posted @ 2023-10-15 08:57 王景迁 阅读(238) 评论(0) 推荐(0) 编辑

导航