Цитата:
void set_replace(unsigned long *n, int j, int i)
|
Интерфейс описан некорректно. Нужно передать в функцию размер массива для проверки.
А по реализации
alexey_ma все написал.
Цитата:
кто нить объясните что эта ф-ция делает и что она возвращает что будет если убрать (!*р2) break; и что она после этого возвращать начнет, ну и конечно не плохо было бы ее заменить на рекурсионную ф-цию.
|
Нда, плохо, что здесь форматированный код не постится
Функция в цикле проверяет, что все символы, содержащиеся в первой строке, содержатся и во второй. Но вот возвращает она полную чушь - разность между двумя указателями. Смысла нет.
Может ты перепутал, и там должно было быть:
"return *p1 - *p2" ?
Если так, то функция вернет 0, если проверка успешная и не 0 в противном случае.
Если убрать "if (!*p2) break", то разность (*p1 - *p2) перестанет что-либо отражать.
Рекурсия тут совершенно неуместна.