JackPeng

Keep on going never give up

数组&字符串&结构体&共用体&枚举

#《C语言高级专题第5部分-4.5.数组&字符串&结构体&共用体&枚举》 第一部分、章节目录 4.5.1.程序中内存从哪里来1 4.5.2.程序中内存从哪里来2 4.5.3.程序中内存从哪里来2 4.5.4.程序中内存从哪里来4 4.5.5.C语言的字符串类型 4.5.6.字符串和字符数组的细节 4.5.7.C语言之结构体概述 ...

用Valgrind检测内存泄漏

简介 系统编程中一个重要的方面就是有效地处理与内存相关的问题。你的工作越接近系统,你就需要面对越多的内存问题。有时这些问题非常琐碎,而更多时候它会演变成一个调试内存问题的恶梦。所以,在实践中会用到很多工具来调试内存问题。 在本文中,我们将讨论最流行的开源内存管理框架 VALGRIND。 Valgrind是用于构建动态分析工具的探测框架。它包括一个工具集,每个工具执行某种类型的调试...

C++中的#和##运算符

#和##运算符 #:构串操作符 构串操作符#只能修饰带参数的宏的形参,它将实参的字符序列(而不是实参代表的值)转换成字符串常量 #define STRING(x) #x#x#x #define TEXT(x) "class"#x"Info" //宏引用: int abc = 100; STRING(abc); TEXT(abc); //替换结果: abcabcabc classabc...

C语言复杂表达式与指针高级应用

C语言复杂表达式与指针高级应用 第一部分、章节目录 4.4.1.指针数组与数组指针 4.4.2.函数指针与typedef 4.4.3.函数指针实战1 4.4.4.函数指针实战2 4.4.5.再论typedef 4.4.6.二重指针 4.4.7.二维数组 4.4.8.二维数组的运算和指针 第二部分、章节介绍 4.4.1.指针数组与数组指针 本节讲述2个很...

在 JNI 编程中避免内存泄漏

JNI,Java Native Interface,是 native code 的编程接口。JNI 使 Java 代码程序可以与 native code 交互——在 Java 程序中调用 native code;在 native code 中嵌入 Java 虚拟机调用 Java 的代码。 JNI 编程在软件开发中运用广泛,其优势可以归结为以下几点: 利用 native code 的...

C内存话题

4.1.内存这个大话题 第一部分、章节目录 4.1.1.程序运行为什么需要内存1 4.1.2.程序运行为什么需要内存2 4.1.3.位、字节、半字、字的概念和内存位宽 4.1.4.内存编址和寻址、内存对齐 4.1.5.C语言如何操作内存 4.1.6.内存管理之结构体 4.1.7、内存管理之栈 4.1.8、内存管理之堆 4.1.9、复杂数据结构 第二...

指针才是C的精髓

指针才是C的精髓 第一部分、章节目录 4.3.1.指针到底是什么? 4.3.2.指针带来的一些符号的理解 4.3.3.野指针问题 4.3.4.const关键字与指针 4.3.5.深入学习一下数组 4.3.6.指针与数组的天生姻缘 4.3.7.指针与强制类型转换 4.3.8.指针、数组与sizeof运算符 4.3.9.指针与函数传参 4.3.10.输...

理解lvalue和rvalue

问题 在sublime写了一个简单的测试程序,代码如下: #include <stdlib.h> #include <stdio.h> int main(){ int add = &1; printf("%s\n%d","hello",&add); } 运行后,报错如下: error:cannot take the address of an...

printf格式化输出

玩acm的都清楚,cin/cout在大家眼里跟没有一样,凡输入输出都是用c的函数的。 可偏偏c中没有bool这个类型,好吧,其实输出bool是当整形输出的。 #include <cstdio.h> int main() { bool b = true; printf("%d\n",b); bool c = false; printf("%d\...

JNI开发-Java传递对象到C/C+

JNI开发有时需要Java把对象作为参数传递到C/C++,此篇主要讲解Java传递Student对象到C/C++; 1 定义com.niubashaoye.simple.jni.StuInfo类; public class StuInfo { private int stuId; private String stuName; private int stuAge; priva...