java-传递(UInt8数组的指针)和访问数组

问题描述

传递(UInt8数组的指针)和访问数组

目前正在做关于UInt8数组的相关应用,遇到问题。

我的代码:

@interface MyClass : NSObject {
    __strong id * myArray; //private byte[] myArray;  <- Java code
}
@property   (nonatomic,readwrite) __strong id * myArray;
@end

在MyClass中的方法:

-(int) getArray: (__strong id *) bufferTmp {

    NSString* aString = @"theString";
    int bytes  = aString.length;

    //now I need to fill the passed in array with the chars of the String
    for (int i = 0; i < bytes; i++) {
            char c = [aString characterAtIndex:i];
            ??? bufferTmp[i] = (UInt8)c;   <----- what to write here?
        }
return bytes;
}

下面是我准备调用方法充填myBuffer的代码:

UInt8 myBuffer[10000];
[xxx read: myBuffer];       <-      不知道这段正确么?

这是相同的java代码:

public int getArray(byte[] bufferTmp) {
    String theString = "theString";
    for (int i = 0; i < bytes; i++) {
        char c = theString.charAt(i);
        bufferTmp[i] = (byte) c;
        }
     return bytes;

 }

在java中调用方法的代码:

byte[] myBuffer = new byte[10000];
int n = read(myBuffer);

解决方案

在Objective-C中可以使用NSDate对象当做byte buffer, 然后dataUsingEncoding获取字节表示的字符串:

NSString *aString = @"theString";
NSData *myBuffer = [aString dataUsingEncoding:NSUTF8StringEncoding];

const char *bytes = [myBuffer bytes]; // pointer to the bytes in the buffer
NSUInteger count = [myBuffer length]; // number of bytes in the buffer
时间: 2024-08-14 16:27:17

java-传递(UInt8数组的指针)和访问数组的相关文章

c++-数组的指针怎么访问数组中的元素求大神帮忙

问题描述 数组的指针怎么访问数组中的元素求大神帮忙 所有需要的文件均已包含 using arry=int[5]: arry* chen() [ Int j=0,i,a[5]: While(cin>>i) {if(j==5) Break: a[j]=i: ++j: } return &a: ] Int main() {Int (*b)[5]: b=chen(): for(int i=0:i<5:i++) cout<<(*b)[i]<<endl: } 解决方案

c++-数组的指针怎么访问其中的元素

问题描述 数组的指针怎么访问其中的元素 求大神帮忙我的这个程序到底哪不对 输不出来元素 解决方案 Ndkddnkdjnss 解决方案二: 如何用指针来实现访问数组的元素-趣味一看指向数组的指针怎么访问数组元素??数组,结构体,结构体数组的差别 (使用指针访问元素时)

C/C++数组和指针详解

/****************************************************************/ /*            学习是合作和分享式的! /* Author:Atlas                    Email:wdzxl198@163.com    /*  转载请注明本文出处: *  http://blog.csdn.net/wdzxl198/article/details/9087497 /***********************

数组与指针的操作

/* ============================================================================ Name : TestArray.c Author : lf Version : Copyright : Your copyright notice Description : 数组与指针的操作 1 数组的基本知识 2 数组当做参数传递的问题 数组当做参数传递的时候,传递的是数组的指针 因为: 1 数组的拷贝很耗费资源.为了避免这种情况,

指向多维数组的指针变量

问题描述 指向多维数组的指针变量 #include int main() { int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; int *p; for(p=a[0];p<a[0]+12;p++) { if((p-a[0])%4==0) printf(" "); printf("%4d",*p); } } 把for(p=a[0];p<a[0]+12;p++)改成for(p=a[0];p<a+3;p++)为什么是正确的

一维数组,二维数组,三维数组,数组与指针,结构体数组,通过改变指针类型改变访问数组的方式

 打印数组中的每个元素,打印每个元素的地址: #include <stdio.h> #include <stdlib.h>   void main(void) {     int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };     for (int *p = a; p < a + 10;p++)  //指针类型决定4个字节     {         printf("\n%p,%d", p, *p);    

指针-Java传递参数无法赋值

问题描述 Java传递参数无法赋值 为什么这样无法给pointer赋值,我debug看变量g.adjList[i}.firstedge明明不为null,但是整个循环下来pointer一直都是null,没有赋值成功请问这个什么回事? Graph是我定义的图的数据结构.firstedge的类型也是EdgeNode public static void showAll(Graph g) { for (int i = 1;i<= g.numVertexs ; i++) { 'EdgeNode point

【C/C++学院】0726-cppIDE/一级指针/指针数组/函数指针/函数指针数组/二级指针

[送给在路上的程序员] 对于一个开发者而言,能够胜任系统中任意一个模块的开发是其核心价值的体现. 对于一个架构师而言,掌握各种语言的优势并可以运用到系统中,由此简化系统的开发,是其架构生涯的第一步. 对于一个开发团队而言,能在短期内开发出用户满意的软件系统是起核心竞争力的体现. 每一个程序员都不能固步自封,要多接触新的行业,新的技术领域,突破自我. cppIDE 使用mfc和codeblocks中的mingw编译器.执行system命令中的bat批处理脚本. 一级指针 指针,结构体struct,

把《c++ primer》读薄(4-2 c和c++的数组 和 指针初探)

督促读书,总结精华,提炼笔记,抛砖引玉,有不合适的地方,欢迎留言指正. 问题1.我们知道,将一个数组赋给另一个数组,就是将一个数组的元素逐个赋值给另一数组的对应元素,相应的,将一个vector 赋给另一个vector,也是将一个vector 的元素逐个赋值给另一vector 的对应元素: //将一个vector 赋值给另一vector,使用迭代器访问vector 中的元素 vector<int> ivec(10, 20); vector<int> ivec1; for (vecto