Проблема в том, что все записи в buf
указывают на одну и ту же строку - ту, которая называется array
. Таким образом, изменение array
повлияет на все buf
записи.
Вы можете исправить это, выделив новую строку для каждой итерации, например, Ваш псевдокод станет:
string buf[10];
i=0;
while(1){
buf[i]= strdup( <array_string> );
i++;
}
Обязательно free()
все строки, когда вы закончите, используя их.