После других запросов, которые я нашел на этом сайте, я пытаюсь напечатать массив указателей на символы (строки), используя ** двойного указателя следующим образом:Печать массива указателей, используя двойной указатель
char *input=malloc(128), *color[7]={0}, **colors=malloc(8);
fgets(input, 128, stdin);
sscanf(input, "%s%s%s%s%s%s", &color[0], &color[1], &color[2], &color[3], &color[4], &color[5]);
color[6]=NULL;
colors=color;
while(*colors)
printf("%s ", colors++);
Выход, полученный мной из вышеприведенного, кажется, удушает каждую строку ввода до 4 байтов, а затем переполняется, если ее больше четырех, потому что, если я набираю: «черное красное золото белого зеленого цвета», например, я получаю : «blacred red goldwhitgreeblue goldwhitgreeblue whitgreeblue greeblue blue». Очень расстраивает.
Я пробовал разыменовывать цвета ++, как я видел в других примерах, но это приводит к сбою программы. В конечном счете, printf предназначен только для отладки. Это часть функции char ** (void), которую я пытаюсь создать, чтобы назначить то, что я пытаюсь напечатать, для локальной переменной типа char **. Как я могу это исправить?
'таНос)' не магия ... –
Ладно, круто (. Не то, чтобы я когда-либо думал. – mosdellg
Ну, вы использовали его, как если бы это было так ... –