и из-за того что разыменование не приводит к ошибке, то оно всё равно куда-то что-то записывает, но на это поведение не стоит полагаться?
a->b эквивлаентно (*a).b поэтому его код будет (**p).data тк *p = malloc (0), то это все равно что (*NULL).data (если я правильно пониимаю, что malloc (0) == NULL)
malloc(0) will return either "a null pointer or a unique pointer that can be successfully passed to free()". This basically lets you allocate nothing, but still pass the "artist" variable to a call to free() without worry.
Вы пытаетесь лезть в ту часть языка, что не регламентирована стандартом. Никогда не пытайтесь разымяновать NULL.
Спасибо. Это так странно, как в этом всём можно разобраться
в си разобраться как раз не так сложно, язык небольшой почитайте какого-нибдуь прата
Обсуждают сегодня