其实很简单,能像c++那样通过数组的地址指针选择开始复制的位置,比如
int buffer[]=new int[10000];
memset(buffer,0,100);
memcpy(buffer+100,srcbuf,9900);
在c#下我只会新建一个数组,然后用Array.CopyTo()来实现,效率差很多,希望各位给指点下
int buffer[]=new int[10000];
memset(buffer,0,100);
memcpy(buffer+100,srcbuf,9900);
在c#下我只会新建一个数组,然后用Array.CopyTo()来实现,效率差很多,希望各位给指点下
可以看下这个,写的很详细
int index,
Array array,
int arrayIndex,
int count
)
Visual C++
public:
virtual void CopyTo(
int index,
Array^ array,
int arrayIndex,
int count
)
J#
public void CopyTo(
int index,
Array array,
int arrayIndex,
int count
)
JScript
public function CopyTo(
index : int,
array : Array,
arrayIndex : int,
count : int
)
参数
index
类型:System..::.Int32源 ArrayList 中复制开始位置的从零开始的索引。array
类型:System..::.Array作为从 ArrayList 复制的元素的目标位置的一维 Array。Array 必须具有从零开始的索引。arrayIndex
类型:System..::.Int32array 中从零开始的索引,在此处开始复制。count
类型:System..::.Int32要复制的元素数。这个是ArrayList的,
Array的没那么好用public void CopyTo(
Array array,
long index
)
Visual C++
[ComVisibleAttribute(false)]
public:
void CopyTo(
Array^ array,
long long index
)
J#
/** @attribute ComVisibleAttribute(false) */
public void CopyTo(
Array array,
long index
)
JScript
public function CopyTo(
array : Array,
index : long
)
参数
array
类型:System..::.Array一维 Array,它是从当前 Array 复制的元素的目标位置。index
类型:System..::.Int64一个 64 位整数,它表示 array 中复制开始处的索引。
我要实现的是这样的C++代码
int buffer[]=new int[10000];
memset(buffer,0,100);
GetBuffer(buffer+100,9900);
只是我在c#中是用Array.CopyTo()来实现的,我想提高效率,不知道该怎么做
memset那你可以把这两个C++的引到C#里用