30.12.2006, 14:17
общий
это ответ
Здравствуйте, Waitekk!
В функцию Enter(char *,char *,char *) передаются указатели на начало области памяти, где хранятся данные (кстати вместо громоздкого &Name[max][0] можно написать просто Name[max] (по сути это одно и то же)), однако функия Enter их не использует, обращаясь напрямую к массивам данных. Чтобы эти указатели использовались функция Enter должна выглядеть так:
bool Enter(char *m_Name, char *m_Adress, char *m_Tel)
{
cout << "Enter name: "; cin >> m_Name;
cout << "Enter adress: "; cin >> m_Adress;
cout << "Enter tel: "; cin >> m_Tel;
return true;
}
В функции Search указатель уже используется при сравнении строк:
int Search(char *m_Tel)
{
int i = 0;
while (i < max)
{
if (strcmp(Tel[i], m_Tel) == 0)
{
return i;
break;
}
i++;
}
return -1;
}
Могу посоветовать книгу Кернигана и Ритчи "Язык программирования Си". В ней очень доступно описана работа с указателями.