отличается от скобок, по крайней мере, в американском английском. ;-)

ичок в c и хочу разделить строку на две части. Вот мой код:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

void test(char** a, char** b)
{
  const char * c = "abcdef";

  *a = (char *)malloc(4* sizeof(char));
  *b = (char *)malloc(4* sizeof(char));


  strncpy(*a, c, 3);

  *a[3] = '\0';

  fprintf(stderr, "a -> %s\n", *a);



  strncpy(*b, c+3, 3);

  *b[3] = '\0';

  fprintf(stderr, "b -> %s\n", *b);

}

int main()
{
setvbuf (stderr, NULL, _IONBF, 0);
char *a = NULL;
char *b  = NULL;

test(&a, &b);

fprintf(stderr, "a -> %s\n", *a);
fprintf(stderr, "b -> %s\n", *b);
}

я хочу иметьabc наa переменная иdef в переменнойb, Но моя проблема в том, что это не сSegmentation Fault, После того, как я запускаю это, я получаю этот вывод:

a -> abc
Segmentation fault

Я не могу понять почему. я используюcygwin и построить его с помощью команды

gcc test.cpp -o test.exe

Извините, если вопрос звучит глупо. Спасибо.

Ответы на вопрос(1)

Ваш ответ на вопрос