#include<stdio.h>
#define NUMBER_OF_CHARS 256
typedef struct Frequency Frequency;
struct Frequency {
// Frequency value:
int v;
};
typedef struct Context Context;
struct Context {
Frequency table[NUMBER_OF_CHARS];
};
int main(){
Context* x;
(x->table[0]).v=10;
//printf("%d\n",(x->table[0]).v);
}
Если я прокомментирую printf, я запустил программу, после чего получаю ошибку сегментации; Если я запустил программу с помощью printf, тогда я получу значение 10. Почему это происходит?Почему printf помогает предотвратить ошибку сегментации в этом следующем коде?
Вы можете использовать '->' на неинициализированном указатель –
Доступа к инициализирован указателю является неопределенным поведением. Может произойти все, что угодно. – Ari0nhh
Вышеприведенное следует читать как: ** Все, что угодно ** * могло бы случиться. – user2864740