我找到了这个代码片段here ,但我就是不知道变量 cSrt
是什么和result
是!
for(int i = 0; i<1000000; i++){
CC_MD5(cStr, strlen(cStr), result);
sprintf(cStr, "%02x%02x", result[0], result[1]);
}
编译器告诉我它们是 char
和unsigned char
,但是当我尝试运行它时,它给了我一个 EXC_BAD_ACCESS
在sprintf
-线。
你知道我可以做些什么来让这个片段工作吗?谢谢。
最佳答案
cStr
和 result
应该是(无符号)字符数组,或指向(无符号)字符缓冲区的指针。
例如
char cStr[] = "This is my str";
char result[16];
for( int i=0; i<1000000; i++ )
{
CC_MD5( cStr, strlen(cStr), result );
sprintf(cStr, "%02x%02x", result[0], result[1]);
}
请注意,cStr
可能是 const
,因为它只是读取,但 result
应该是非常量缓冲区,因为 CC_MD5
将结果写入此处。
编辑:
实际上,在这种情况下,cStr
不能是 const,因为您在 sprintf
行中写入它,但只要您仅在 中使用它CC_MD5
应该没问题。
关于iphone - 识别 C 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8704717/