...
public
static
byte tobytearray(string str)
string mystr = "hello";
byte src = new
byte[count];//count > 5
src = tobytearray(mystr);
file.write(src,0,count);..
.
以上為示例**段,當執行時,會提示偏移量和長度超出陣列的界限。
下面是filestream.write()的函式宣告:
void filestream.write(byte array,int offset,int
count)
其中,offset為對陣列array從零開始的偏移量。count為從offset位置開始要讀到流中的位元組個數。
(以上函式宣告只是乙個說明,跟本文問題相關度不大)
好了,當我除錯的時候發現,陣列src從src[5]開始就資料就不是0x00了,所以是tobytearray函式的原因,將原本為0x00的資料全部清空了,具體原因我沒有深究(假想一下,就像c語言裡一樣,給了乙個』\0』結束識別符號嗎?),
所以會導致我想訪問src[5]後面的位元組出現陣列越界的問題。
long filestream.seek(long offset, seekorigin origin);
這個偏移函式,幫我成功的解決了這個問題,覆蓋為0x00。
想想還是c語言好,透明。
C 中struct成員的偏移量的計算
c 中,計算struct成員的偏移量,有如下三種方法可用。假設有定義如下 struct st test 現想要求 b 相對於 st test 的偏移位址。1 常用的方法 size t st test 0 b 2 使用stl的定義,要包含 標頭檔案 offsetof st test b offseto...
C語言中的指標加減偏移量
首先看一段程式 輸出結果為 2,5 第乙個結果好說,a 1後指標指向了陣列中的 2 而第二個為什麼輸出 5 呢。原理是c語言中的指標加減後,會根據指標的型別採用不同的偏移量。比如,int a int b a 1 則 b a sizeof int char a char b a 1 則b a size...
C語言中的指標加減偏移量
首先看一段程式 cpp nogutter view plain copy include intmain int p int a 1 printf d,d n a 1 p 1 return 0 輸出結果為 第乙個結果好說,a 1後指標指向了陣列中的 2 而第二個為什麼輸出 5 呢。原理是c語言中的指...