#pragma pack(push,1) struct some_structure { int some_field; char data[0]; }; #pragma...

0 голосов
63 просмотров

#pragma pack(push,1)
struct some_structure {
int some_field;
char data[0];
};
#pragma pack(pop)

Компилятор gcc 4.7.2, оптимизации отключены.
К какой области памяти мы обратимся, когда выполним data[0]?
a. к первому байту поля some_field
b. к последнему байту поля some_field
c. к первому байту после поля some_field
d. такое объявление структуры не скомпилируется


Информатика (20 баллов) | 63 просмотров
Дан 1 ответ
0 голосов

Верного ответа нету. Такой код скомпилируется, но при обращении выдаст ошибку. 

Но наиболее подходящий, это:
d. Такое не скомпилируется, т.к. размер символьного массива нулевой.

(1.8k баллов)