Вам нужен размер char
, а не char **
edge[i] = malloc((strlen(kmer) + 2)); //2 to hold char + \0
Не используйте strcpy
, если вы хотите скопировать один char
.
strcpy(edge[i], &base[i]); --> edge[i][0] = base[i];
ВыВы делаете присвоение указателя, что вам нужно: strcpy
*((*(edge + i)) + strlen(&base[i])) = kmer; --> strcpy((char *)&edge[i][1], kmer);
Удалить строку ниже, так как \0
уже добавлено strcpy
.
*((*(edge + i)) + strlen(&base[i]) + 1) = '\0';
Или просто
sprintf(edge[i], "%c%s", base[i], kmer);