我有下一个问题。我使用int memcmp ( const void * ptr1, const void * ptr2, size_t num );
函数来比较两个包含整数的 void 指针。这对我很有用。
int firstValue = 5;
int secondValue = 3;
void* firstValueVoid;
void* secondValueVoid
firstValueVoid = new int(firstValue);
secondValueVoid = new int(secondValue);
int compare = memcmp(firstValueVoid, secondValueVoid, 4);
cout << compare << endl;
但是,如果我尝试对字符串使用相同的值,它总是显示第一个值小于第二个值。
string firstValue = "abc";
string secondValue = "a";
int testSize = firstValue.length();
void* firstValueVoid;
void* secondValueVoid
firstValueVoid = new string(firstValue);
secondValueVoid = new string(secondValue);
int compare = memcmp(firstValueVoid, secondValueVoid, testSize);
cout << compare << endl;
所以compare
value 总是等于-1
。即使我正在制作firstValue = "a"; secondValue = "a";
. 请帮助某人。我已经尝试了我想到的一切来解决这个问题。先感谢您!