从CPP到Java的转换(dp = 1)

时间:2013-09-23 10:33:50

标签: java c++ arrays pointers

我有从CPP转换为Java的代码。虽然从来没有在CPP上工作,但我几乎只有很少有令人困惑的事情。

我想了解以下CPP代码以及如何用Java表示它:

UInt8* data;
memcpy(data, rawData, rawDataLen);
UInt8* dp = data;
dp += 8; //Is it updating the Array Index?
char buf[256];
sizeof(buf) //Can I take it as Length?

请建议。

1 个答案:

答案 0 :(得分:2)

关于你的第一个问题:

dp += 8;

是的,这会设置数组中位置的指针。所以在java中意味着你要更新你的数组索引。

到第二个:

sizeof(buf);

sizeof返回字节数,而不是元素数。所以在你的情况下,它确实是长度,但仅限于sizeof(char) = 1。这取决于系统。例如,在大多数系统上sizeof(short) = 2。因此,如果您的buf是一个短数组,sizeof(buf)将等于长度的两倍。