В этом нижеследующем коде я хочу скопировать строку в 'pre' в массив 'word', чтобы я мог напечатать массив «слово» позже, но он показывает ошибку НЕПОРТОВОЙ КОНВЕРСИИ. делая это с помощью strcpy(), но это работает. Любой другой способ сделать это ?? Я хочу сохранить строки, присутствующие в «пре» в массив каждый раз, когда он генерируется ..Назначение символьного указателя на массив указателей символов
void print(char *pre,struct dic * root,int depth)
{
int i=0,flag=0,int j=0;
char *word;
for(;i<27;i++)
{
if(root->node[i])
{
pre[depth]='a'+i;
flag=1;
print(pre,root->node[i],depth+1);
pre[depth]=0;
}
}
if(flag == 0)
{
pre[depth]=0;
printf("\n%s\n",pre);
//j is declared globally
***word[j]=pre;***
//printf("\nWord[%d]=%s\n",j,word[j]);
}
}
Спасибо ..
Ahh, я перечитал (сразу после отправки) и увидел пропущенную строку внизу кода. @Matthieu прав, что static char ** word; - это то, что вы хотите, с malloc()/realloc(), как необходимо как для исходного массива строк, так и для каждой строки, в которую вы входите strcpy(). Обратите внимание, что он должен быть статичным, если вы строите этот массив каждый раз, когда вы вызываете функцию (и если она нужна только внутри функции). – Crwth