Understanding the Differences Between Static and Temp Variables in PLCs

Understanding the Differences Between Static and Temp Variables in PLCs

Hello everyone, I received a submission from a fan asking me to explain the differences between Static and Temp variables. Newcomers in the field may find these two concepts a bit difficult to understand. In this article, I will clarify the differences between Static and Temp variables through a few simple examples, along with an … Read more

The Distinction Between Intrusive and Non-Intrusive Smart Pointers in C++: A Deep Dive

The Distinction Between Intrusive and Non-Intrusive Smart Pointers in C++: A Deep Dive

The Distinction Between Intrusive and Non-Intrusive Smart Pointers in C++: A Deep Dive <span>std::shared_ptr</span> is not a silver bullet; uncovering the memory management tool for high-performance scenarios—intrusive pointers Introduction:<span>std::shared_ptr</span> and its “hidden costs” Hello, C++ developers. We all love <span>std::shared_ptr</span>, which elegantly solves the memory management problem of shared ownership through reference counting. When we … Read more

Is MMU Required for Running Embedded Linux?

Is MMU Required for Running Embedded Linux?

Scan to FollowLearn Embedded Together, learn and grow together Why is MMU Needed? We know that applications cannot access memory arbitrarily. Allowing applications to directly access physical memory would be very dangerous, as all contents of the computer’s memory would be completely exposed. This is where the MMU comes in. The MMU, or Memory Management … Read more

GDB Debugging Methods (8) – Pwndbg

GDB Debugging Methods (8) - Pwndbg

After using GDB for a while, you may find that some features, such as viewing stack layouts, are not very convenient to use directly with GDB. However, the core issues of operating systems often lie in memory management. For example, printing a doubly linked list is not easy to handle with GDB alone. So, is … Read more

The Three Major Advantages of Rust: Performance, Safety, and Concurrency – Can You Refuse?

The Three Major Advantages of Rust: Performance, Safety, and Concurrency - Can You Refuse?

Why Learn Rust in 2025? According to developer survey data, Rust has entered the top 12 most widely used programming languages in the IT industry. The data shows that 10%-13% of software developers use Rust in their daily work. Notably, among those who are just starting to learn programming, this percentage even reaches 11%-18%. The … Read more

Understanding Core Concepts of Python

Understanding Core Concepts of Python

Introduction In Python development, understanding the reference differences between mutable objects (such as lists and dictionaries) and immutable objects (such as integers and strings) is crucial. This not only affects code performance but can also lead to subtle bugs. As an experienced developer, I will share insights from practical development to help you master this … Read more

Fundamentals of C++ Game Development: Dynamic Memory Allocation with new and delete

Fundamentals of C++ Game Development: Dynamic Memory Allocation with new and delete

Before discussing dynamic memory allocation, let’s first look at the two basic types of memory allocation in C++: Static memory allocation is used for static and global variables. The memory for these variables is allocated all at once when the program runs and lasts for the entire lifecycle of the program. Automatic memory allocation is … Read more

Liberation of Memory Management in C++: A Detailed Explanation of BDWGC Efficient Garbage Collector Technology

Liberation of Memory Management in C++: A Detailed Explanation of BDWGC Efficient Garbage Collector Technology

In C++ development, manual memory management (<span>new</span>/<span>delete</span>, <span>malloc</span>/<span>free</span>) is a tedious and error-prone task, with memory leaks and dangling pointers being the root cause of many bugs. Although smart pointers (<span>std::shared_ptr</span>, <span>std::unique_ptr</span>) have greatly improved this situation in modern C++, they are not a panacea, as complex circular references or interactions with C code still … Read more

Illustration of C Language Pointer Variables

Illustration of C Language Pointer Variables

1 Basic Operations of Pointer Variables int a,*iptr,*jptr,*kptr;iptr = &a;jptr = iptr;*jptr = 100;kptr = NULL; Illustration: 1.1 Address and Memory Space A pointer variable is also a variable that corresponds to a block of memory space and an address in memory; the name of the pointer is the address. How large is this empty … Read more

Understanding Stack Overflow and Heap Overflow in C Language: The Simplest Explanation Online

Understanding Stack Overflow and Heap Overflow in C Language: The Simplest Explanation Online

Content First, imagine memory as a three-story building: The first floor is the “Global Data Area” – the hall you see as soon as you enter; The second floor is the “Stack” – like a hotel front desk with a last-in-first-out drawer cabinet, opened and closed as needed; The third floor is the “Heap” – … Read more