我认为一般的经验法则是 -> 运算符用于访问结构指针的成员,而 . 运算符用于访问实际结构的成员。在我的代码中,我以为我创建了一个结构指针,但最终我仍然不得不使用 . 操作员。有人可以解释为什么吗?
typedef struct Robot
{
char **brain;
int size;
} Robot;
int main(void)
{
char buffer[100];
Robot *dalek = malloc(sizeof(Robot)*2);
for(i = 0; i < 2; i++)
dalek[i].brain = malloc(sizeof(char*) * 3);
for(i = 0; i < 3; i++)
{
scanf("%s", buffer);
dalek[0].brain[i] = malloc(sizeof(char) * strlen(buffer));
strcpy(dalek[0].brain[i], buffer);
}
}