Цитата(compiler @ 18.07.2007 16:34)
что знасит этот индекс(0)?
Значит, что за точку отсчета при обращении к массиву через указатель, принимается нулевой элемент (в данном случае).
Цитата(compiler @ 18.07.2007 16:34)
если пишем p := @pp; все работает так-же, но если указываем другой индекс получаем проблемку...
А вот смотри, почему ее получаем:
первая итерация - p := @pp[0], при заходе в функцию Proc значение p[j] сравнивается с pp[j]. Поскольку в свою очередь, базовый индекс (та самая точка отсчета) P равняется 0, то P[j] = pp[base + j] = pp[j]. Что проверяется? Условие p[j] = pp[j]? Подставь то, что я написал, будет истина.
Вторая (и последующие) итерации: базовый индекс больше нуля, следовательно в Proc проверяется условие pp[base + j] = pp[j]
при base > 0. Если посмотреть, как ты заполнял массив pp, то понятно, что ни при одном base > 0 равенства не будет.
Кстати, у тебя еще и выход за границу массива происходит, ты в курсе?