c语言

吃西瓜的年年2 小时前
c语言·开发语言
1. 初识C语言“过程式编程”是一种编程范式,它的核心思想是:程序是为解决一个问题而设计的一系列有序的步骤或指令。说人话就是,按顺序执行代码,先第一步,然后第二步,第三步,按照步骤来做。
永远都不秃头的程序员(互关)3 小时前
c语言·开发语言
C语言 基本语法c的标记(Tokens)c程序由各种标记组成,标记可以是关键字,标识符,常量,字符串值,或者是一个符号。例如,下面的五个标记:
赖small强4 小时前
linux·c语言·c++·stack protector·stack-protector·金丝雀机制
【Linux C/C++开发】Linux 平台 Stack Protector 机制深度解析Stack Protector(又称 Stack Canary 或 Stack Cookie)是一种用于防御栈缓冲区溢出(Stack Buffer Overflow)攻击的安全机制。其核心思想是在栈帧(Stack Frame)的关键区域插入一个随机生成的“金丝雀值”(Canary),在函数返回前检查该值是否被篡改。
liu****5 小时前
c语言·开发语言·数据结构·算法·链表
3.链表讲解我们要改变ListNode*,就要传递ListNode*的地址题目链接:https://leetcode.cn/problems/remove-linked-list-elements/description/
赖small强6 小时前
linux·c语言·c++·stack·堆栈溢出
【Linux C/C++开发】Linux C/C++ 堆栈溢出:原理、利用与防护深度指南要理解堆栈溢出,首先必须掌握 Linux 进程的内存布局以及函数调用的底层机制。一个标准的 Linux 进程(32位环境)的虚拟地址空间从低到高通常包含以下段:
赖small强7 小时前
linux·c语言·c++·mprotect·buffer overflow
【Linux C/C++开发】Linux C/C++ 高效延迟崩溃分析:基于 mprotect 的内存陷阱技术 (Electric Fence)在 C/C++ 开发中,内存越界(Buffer Overflow)是最常见的错误之一。传统的 malloc/free 实现出于性能考虑,通常将多个小对象分配在同一个物理内存页中。当越界发生时,往往只是覆盖了邻近对象的内存,而不会立即触发硬件中断。这导致程序虽然内部状态已损坏,却能继续运行一段时间,形成难以调试的“延迟崩溃”(Deferred Crash)。
繁华似锦respect7 小时前
linux·c语言·开发语言·c++·windows·算法
C++ & Linux 中 GDB 调试与内存泄漏检测详解GDB 是 Linux 下功能最强的命令行调试器,支持断点、单步执行、查看内存/变量、调试核心转储(core dump)、多线程调试等功能。使用 GDB 前需确保程序编译时保留调试信息(-g 选项)。
ULTRA??9 小时前
c语言·开发语言
C语言简化版本开辟动态内存的万能MALLOC宏封装有!核心是 1套封装(适配所有类型+1D/2D数组)+ 2个宏,一行完成「动态内存开辟+安全判断」,一行完成「统一释放+置空」,无需区分int、结构体、一维/二维数组,彻底告别原生malloc/free的冗余写法,且完全通用。
2401_8612775510 小时前
c语言·c++
func(int* num)的实现是*num=2或者int a=3,num=&a都可以吗在C/C++中,函数func(int* num)的实现可以修改指针所指向的值,但不能安全地修改指针本身的指向(除非传递的是指针的指针)。以下是具体分析:
我要升天!10 小时前
c语言·开发语言·网络·c++·qt
QT -- 网络编程Qt 为了支持跨平台, 对网络编程的 API 也进行了重新封装.Qt Network 是一个用于C++应用程序网络编程的模块,它提供了一套从底层套接字操作到高层网络协议(如HTTP)的完整API。其核心特点是将复杂的网络通信功能封装为易于使用的类,并深度融入Qt的事件驱动和信号槽机制,让开发者能高效地开发客户端和服务器程序。
小武~10 小时前
linux·c语言·leetcode
Leetcode 每日一题C 语言版 -- 234 basic calculatorhttps://leetcode.com/problems/basic-calculator/?envType=study-plan-v2&envId=top-interview-150
永远都不秃头的程序员(互关)10 小时前
c语言·数据结构·算法
在vscodeC语言多文件编译实战指南在现代软件开发中,代码的管理和组织变得至关重要,特别是在C语言项目中,如何高效地编写、维护和开发成为每个开发者必须面对的挑战。随着项目规模的扩大,将代码拆分成多个模块是一种有效的做法。多文件编译不仅能提高代码的可读性和可维护性,还能便利团队协作,降低冲突的可能性。通过多文件编译,我们可以高效地管理项目,并实现更高的代码重用性。
无限进步_11 小时前
c语言·开发语言·windows·后端·算法·visual studio
C语言宏的魔法:探索offsetof与位交换的奇妙世界在C语言编程中,宏(Macro)是预处理器提供的一种强大工具,它能够在编译前对代码进行文本替换。虽然现代C++推荐使用内联函数和常量表达式来替代宏,但在某些场景下,宏仍然展现出无可替代的价值。今天,我们将通过两个精彩的宏实例——结构体偏移量计算和二进制位交换,来探索C语言宏的奇妙之处。
代码雕刻家11 小时前
c语言·开发语言
C语言关于换行符的注意事项1. 输入缓冲区的特性: 当使用像 scanf()、fgets()这样的输入函数时,换行符 \n 常常会留在输入缓冲区中。比如:
咕咕嘎嘎102412 小时前
java·c语言·c++
C/C++内存对齐注:以下在32位情况下讨论先看现象,有这么几行代码在我们不知道内存对齐前,很可能认为结构体大小是4+1+4=9,可实际结果是12
缘三水12 小时前
c语言·开发语言·指针·语法
【C语言】14.指针(4)🎉个人主页: 缘三水的博客 ❄专栏传送门:C语言专栏(新手向) 🎀人生格言:行动是迷茫的最好解药🚀个人介绍:
Felven13 小时前
c语言·数据结构·算法
C. Isamatdin and His Magic Wand!time limit per test2 secondsmemory limit per test256 megabytes
吗~喽13 小时前
c语言·开发语言·c++
【C++】模板进阶本文深入探讨了C++模板的高级特性,主要包括非类型模板参数和模板特化。想看模板初阶的道友可以点这里:【C++】模板初阶
京井13 小时前
c语言·算法
从中序与后序遍历序列构造二叉树解题思路题目:给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。
Tandy12356_13 小时前
c语言·c++·网络协议·计算机网络
手写TCP/IP协议栈——ARP超时重新请求① 广播地址 ② 本地网卡的MAC地址如果是非法数据包,压根都不会进入协议栈,直接在硬件层面就丢包了arp_entry记录的是网络当中主机IP地址与MAC地址的映射关系,但是由于网卡绑定的IP地址是动态的。如果对方的机器下线,此时DHCP服务器可能会回收这个IP地址进而分配给别的网卡,这时候我们本机保存的arp表项当中维护的映射关系就出错了,需要重新进行修正。