Я пытаюсь разбить строку по две, чтобы перейти к двум детям. первая часть должна быть 12 '0' символов, а вторая должна быть 13 '1' символов. Когда я выполняю этот код, я не получаю ни одной из этих вещей. в частности, это выход. Родительские левые: 00000000000 Родитель право: 0000000000001 Я понятия не имею, почему, может кто-то может помочь?Malloc и strncpy
int bit_count(char *passed, int len){
int left = len/2;
int right =(len/2)+(len % 2);
char *lstring = malloc(sizeof(char)*(left+1));
char *rstring = malloc(sizeof(char)*(right+1));
strncpy(lstring, passed, sizeof(char)*12);
strncpy(rstring, passed+left, sizeof(char)*13);
printf("Parent Left: %s\n", lstring);
printf("Parent Right: %s\n", rstring);
Зачем рассчитывать влево и вправо, если вы просто собираете хард-код 12 и 13 здесь. Это не имеет никакого смысла. – StoryTeller
Право, я изменил его на это, чтобы попытаться понять, что происходит. в конечном итоге я останусь налево и вправо. – ReezaCoriza
Вам не нужно умножать на 'sizeof (char)' - аргумент 'strncpy' - это количество символов для копирования, а не размер. – Barmar