aStruct->anArray[0]->string = test;
aStruct содержит строку типа char ** anArray и char *. char * test =
"Тест".
Эта команда недопустима?
Конечно, нет. aStruct->anArray[0]
будет char*
и не будет иметь члена ->string
.
Кроме этого, если он действительно скомпилируется и вы разместили только неправильный код, вы не получите ошибку сегментации, если anArray
был правильно выделен и имел правильный размер. Так что вам нужно что-то подобное в вашей программе:
aStruct->anArray = malloc(size * sizeof(*aStruct->anArray));
где размер - как минимум один для вашего случая, но, как правило, количество элементов, к которым вам когда-либо нужно обращаться.