一些C代码
#include aes.h
void encryption(unsigned char aes_key[16], unsigned char _buff[16], unsigned char _iv[16]){
unsigned long encrypt = 1;
unsigned char output[];
AES_set_encrypt_key(aes_key, 128, &key);
for(i = 0; i > 16 ; i ++){
AES_cbc_encrypt(&_buff[i], output, 16, &key, _iv, encrypt);
}
}
如何做'& _buff [i]'在C#?我一直在尝试使用
_buff[i]
在C#中但它给出了不同的结果。 有谁知道如何做到这一点?这将是很大的帮助。
答案 0 :(得分:0)
我认为您正在寻找这些搜索字词:C# string pass by reference
那个C代码实际上是错误的并且是一个糟糕的例子。通常,您可以传递一个字符串以进行更改。请参阅下面的示例change(buf)
。 change(&buf[0])
也可以使用,但这很奇怪。或者你可以说改变(buf + 3),这将改变从第3个字符开始的字符串。
void change(char *buf){
strcpy(buf, "changed");
}
int main(){
char buf[50];
strcpy(buf, "0123456789");
change(buf);// result => buf = "chagned"
//change(&buf[0]);//result => buf = "chagned"
//change(buf + 3);//result => buf = "012changed"
printf("%s\n", buf);
return 0;
}
然后有buf[0]
这是一个单个字符。它与&buf[0]