Предположим, у нас есть Адрес классуказатели на указатели на строки и STRCMP
class Address{
public:
char addr[6];
}
Если мы имеем ADDRESS1 и ADDRESS2 объектов. Что сравнивает эта линия?
strcmp((char *)&(Address1.addr), (char *)&(Address2.addr))
addr - указатель на массив символов. & addr является указателем на указатель на массив символов, а затем вы передаете его в массив символов. Так это должно фактически сравнить два массива символов?
'addr' не является указателем, это массив. В любом случае, 'strcmp (address1.addr, Address2.addr);' будет иметь гораздо больше смысла ... – chris
это неопределенное поведение. strcmp просят обработать 2 указателя в виде строк. Выньте приведения и прочитайте сообщение об ошибке компиляторов – pm100
[strcmp] (http://www.cplusplus.com/reference/cstring/strcmp/) ожидает, что указатели будут привязаны к символу, а не к двойным указателям на символ. – Sheljohn