NULL
- это макрос, представляющий нулевой указатель , а не целое число. То, что вы делаете, - одно из самых распространенных и болезненных злоупотреблений, которое заставляет стандартизаторов C ++ не прекращать головную боль.
Если вы хотите, чтобы целое число было нулем, используйте восьмеричный 0
литерал:
int n = 0;
Далее ваш код в порядке, но отсутствует выделение . Где хранятся frameTable[i]
переменные?
Вам нужно одно из следующих двух:
Frame frameTable[2]; // automatic storage
Frame * frameTable = malloc(sizeof(Frame) * 2); // manual, your responsibility now