Ваша (первая) проблема здесь:
d[count1]='/0';
strcpy(&array[count],d);
Вы написали '/0'
, это не то, что вы думаете. Предполагая, что вы имели в виду '\0'
(ноль char
литерал), вы, похоже, пытаетесь вручную завершить строку d
перед вызовом strcpy()
. Проблема в том, что то, что на самом деле записывается в d
, не является нулевым байтом, и поэтому d
не заканчивается нулем, а затем strcpy()
выключается и начинает читать случайную память после нее и копировать эту память в array
, до тех пор, пока чтение или запись не окажутся вне памяти, к которой вам разрешен доступ, и вы не получите ошибку сегментации.
У вас также есть некоторая путаница в том, что array
есть. Он объявлен как массив 100 char
с, но вы рассматриваете его как массив строк. Возможно, вы хотели объявить это char *array[100]
?