Сначала я подумал, что это опечатка, но она повторяется дважды в тексте и в другой раз в примере кода в ответе на вопрос, и я с трудом верю, что он просто проскользнул, по крайней мере, на два C экспертов, не заметив, когда он выскочил на новичков, подобных мне. Это также в фокусе кода, очень легко заметить и никогда не исправлялось.
Вот код с добавленным отступом:
#include <stdlib.h>
struct A {
char x[1];
};
main()
{
struct A *p = (struct A *) malloc(sizeof(struct A) + 100);
p->>x[5] = '?'; /* This is the key line [for both them and us] */
return 0;
}
Я попытался скомпилировать этот код как с компилятором C, так и с С++, и он не смог проанализировать ни один из них. Возможно, это был какой-то оператор в ранней версии C, который больше не используется?
Это выглядит подозрительно, как Что такое имя этого оператора: "- > " ? вопрос, но я не думаю, что это комбинация двух другие операторы, я не вижу, как это можно разделить и быть действительным.