很久没有碰C++了,用了两周时间复习了一下,感觉知识应该时常巩固,不然很容易忘掉。         智能指针是一种能够自动维护对象引用计数的技术,用来管理C++对象的释放。因为C++不像Java有自动回收机制,C++需要程序员手动的来释放堆资源(通过New 出来的对象-----指针)。如果程序一直都不释放内存,那么长期运行,必定造成内存吃紧。如果我们手动
Android手机操作系统既然是开源的操作系统。那么在具体的文件夹中就会存放着各种相关功能的开源代码。我们在使用的时候可以根据这些源代码进行相应的修改就能轻松的完成我们所需的功能。在这里大家就一起来看看Android智能 指针的相关源码解读以及应用方法。在Android的源代码中,经常会看到形如:sp< xxx>、wp< xxx>这样的类型定义,这其实是Android中的智
转载 2023-07-12 19:28:19
199阅读
指针操作与指针变量相关-指针变量就是存放地址的变量。指针变量的引用主要涉及到两个方面:(1)对指针变量本身的引用,就是说对指针变量进行的各种运算(2)对指针变量所指向的目标,对指针进行引用。 通俗的说上述两种情况,一种是对地址的运算,一种是对地址所指向的变量进行间接引用。跟指针相关的操作符主要有3个:&、*、[](1)&:取地址运算符,(2)*:指针运算符—–取指针所指向的运算符
转载 2023-08-30 22:57:42
64阅读
1、在C语言中,没有字符串类型,因此使用char指针表示字符串。 2、那么问题来了,使用char* 表示字符串,到哪里是结尾呢?因此需要一个特殊的字符作为哨兵,类似迭代器中的end(),这个哨兵就是'\0',注意不是字符0. 3、对于文本字符串,编译器会自动添加\0。 4、对于字符数组的赋值,如果不使用文本字符串,需要用户在尾部添加字符\0。对于其他类型的数组,没有\0的概念。 5、对于char
转载 2014-02-20 21:39:00
32阅读
1、以字符串形式出现的,编译器会在结尾自动添加\0,思考,为什么?   存在的C语言方法,如strlen(s),计算字符串的长度,其中s指针。strlen要计算字符串长度,必须知道哪里是结尾,因此使用\0表示结尾。只有字符数组才有\0的概念,其它类型(int)的数组没有这个概念。因为其他类型的数组或者指针,没有strlen这种方法。   那么问题来了,int数组如何计算长度呢?如int a1 =
转载 2014-02-17 20:48:00
304阅读
Dalvik指令集组成的代码,又称为Dalvik汇编代码。1.Dalvik指令格式一段Dalvik汇编代码由一系列Dalvik指令组成,指令语法由指令的位描述与指令格式标识来决定。位描述约定如下:     ● 每16位的字采用空格分隔开来。     ● 每个字母表示4位,每个字母按顺序从高字节开始,排列到低字节。每4位之间可能使用竖线 “
转载 2023-07-06 14:58:12
94阅读
#include# ngTostring(JNIEnv* env, jstring jstr) { char* rtn = NULL; //jcla...
转载 2014-07-16 18:56:00
160阅读
2评论
1. 使用指针指向数组 int 这种输入方式是错误的,因为数组名代表数组首元素的地址,是一个指针型常量,其值在程序运行期间是固定不变的。所以a++是无法实现的。 int a[10]; int *p = a; for(i = 0;i<10;i++){ scanf("%d", p++); } for(i = 0;i<10;i++){ printf("%d",*p
List----->数组 开发中不免碰到List与数组类型之间的相互转换,举一个简单的例子: package test.test1; import java.util. ArrayList; import java.util.List; public class Test { /** * @param args
转载 2023-10-06 17:00:27
180阅读
当JVM调用该函数时,它传递了一个JNIEnv指针、一个jobject指针和通过Java方法定义的Java参数,JNI函数的形式如下:更加正式的解释是这样的,本地代码通过调用JNI的函数来访问JVM,这是通过一个界面指针实现的(界面指针实际上是指向指针指针),该指针指向一个指针数组,数组中的每个指针都指向了一个界面函数,而每个界面函数都是在数组中预先定义过的。   Java本地接口(J
转载 2023-05-24 00:20:07
326阅读
在使用jni调用时经常遇到数据类型转换问题,以下是char*与jstring相互转换的代码://java字符串
原创 2023-04-18 06:35:32
298阅读
         当我们学习C语言时,一般都会觉得指针这块是比较难理解的。而指针一般分为一级指针、二级指针指针和数组、指针数组等。下面就是我对这几种的简单理解。指针实际就相当于地址,它是数据的唯一标识。        1.一级指针分为整形指针和字符
# 实现Java C字符指针 ## 简介 在Java中,字符指针是一种特殊的数据类型,它可以指向一个字符变量或者一个字符串。通过使用字符指针,我们可以方便地对字符数据进行操作和处理。本文将向你介绍如何实现Java C字符指针。 ## 实现步骤 下面是实现Java C字符指针的步骤,我们可以用一张表格来展示: | 步骤 | 描述 | | --- | --- | | 1 | 导入必要的包 |
原创 2023-12-28 12:25:07
24阅读
目录1.前言2. 一维数组传参3.二维数组传参4.指针传参4.1 一级指针传参4.2 二级指针传参1.前言去掉变量名,就是类型数组指针的类型就是:int (*)[5] 2. 一维数组传参第一个int arr[]:对的第二个int arr[10]:不写都是对的,写上或者写错也没毛病。但是这里的10没用,没必要写第三个int* arr:数组名是首元素地址,那地址就可以用指针来接收,
前言:空指针异常在Java中的出现就好像死亡在你生命中一样,你无法避免也无法拒绝。不可否认null对象在编程上给我们带来很多便利,但在便捷的同时,要求开发人员仔细检查、校验。相信我们在写代码中的时候都写过无数个if xx = null …这种代码,这篇博客就是教你使用Optional代替没有营养的校验,然后开启你的函数式编程。空指针引用:价值十亿美元的错误我称之为我的十亿美元错误……当时,我正在设
转载 10月前
31阅读
       void apiservice_SystemAppService_nativeSendGPS2Ubox(JNIEnv *env, jobject, jstring prompt){            const char *str = env->GetStringUTFChars(prompt, 0);                       env-...
uu
原创 2023-04-18 06:20:31
272阅读
0x00 简介在入门 c 语言时我们都知道一个常识:通过 malloc() 动态申请的内存在使用完之后需要通过 free() 释放;那么如果因为程序设计不当,导致这块堆内存释放之后,再释放一次会发生什么呢?看起来这个操作似乎很愚蠢,但是 double free 的确是现代软件中十分常见的一种二进制漏洞。我将通过一个例子来说明 double free 可能造成的危害。这个例子是曾经的一道 0ctf
转载 2024-06-07 07:26:49
32阅读
摘要:在学习C语言时,一个比较容易混淆的概念就是函数指针指针函数、返回值为指针的函数。本文将对这三个概念进行区分。指针函数就是返回值为指针的函数,两个本质上是同一事物,只是叫法不同。函数指针就是一个指向函数的指针,本质上是一个指针,只是这个指针指向的对象是函数,而不是一般意义上的存储对象。正文: 指针函数指针函数就是返回指针值的函数,本质是一个函数。所以指针函数等价于“返回值为指针的函
Java 基本数据类型Java 的两大数据类型:内置数据类型引用数据类型内置数据类型对于每一种 数据类型 都有一个 包装类,如:void类型的包装类是 java.lang.Void。对于数值类型的包装类,我们都可以从中获取对应类型的二进制位数、取值范围。原语对应的 JDK 类booleanjava.lang.Booleanbytejava.lang.Bytecharjava.lang.Charac
转载 2024-10-10 08:00:26
28阅读
具体代码:#define CHARSET_UTF8 "utf8"static jclass jClassString = NULL;void jstringToBuffer(JNIEnv* pEnv, jstring jresult, char** ppBuffer){ if (jClassString == NULL) { jClassString = pEnv->FindClass("java/lang/String"); } j
原创 2021-08-06 12:43:56
587阅读
  • 1
  • 2
  • 3
  • 4
  • 5