Разыменование указателя на 0 в C

иногда данные по адресу памяти 0x0 довольно ценны -- возьмите x86 real mode IVT в качестве более известного примера: он начинается с 0x0 и содержит указатели на обработчики прерываний: dword в 0x00-указатель на деление на нулевой обработчик ошибок. однако стандарт языка C11 запрещает разыменование нулевых ук...

Что такое функция звездочки перед именем функции?

Я был смущен тем, что я вижу на большинстве программ на C, которые имеют незнакомые объявления функций для меня. void *func_name(void *param){ ... } что значит * подразумевает функции? Мое понимание о (*) в типе переменной является то, что он создает указатель на другую переменную, таким образом, он м...

Когда можно получить доступ к указателю на "мертвый" объект?

во-первых, чтобы уточнить, я не про разыменование недействительного указателя! рассмотрим следующие два примера. Пример 1 typedef struct { int *p; } T; T a = { malloc(sizeof(int) }; free(a.p); // a.p is now indeterminate? T b = a; // Access through a non-character type? Пример 2 void foo(int *p) {}...

Моделирование указателей в Python

Я пытаюсь скомпилировать in house language(ihl) на Python. одна из функций ihl-это указатели и ссылки, которые ведут себя так, как вы ожидаете от C или c++. например, вы можете сделать это: a = [1,2]; // a has an array b = &a; // b points to a *b = 2; // derefernce b to store 2 in a print(a);...

что возвращает malloc(0)? [дубликат]

этот вопрос уже есть ответ здесь: какой смысл в malloc(0)? 16 ответов Что значит malloc(0) возвращает? Будет ли ответ таким же для realloc(malloc(0),0) ? #include<stdio.h> #include<malloc.h> int main() { ...

Динамическое выделение массива объектов

это своего рода вопрос для начинающих, но я не делал C++ в течение длительного времени, так что здесь идет... у меня есть класс, который содержит динамически выделенный массив, скажем class A { int* myArray; A() { myArray = 0; } A(int size) { myArray = new int[size]; ...

В C, как бы я выбрал, возвращать ли структуру или указатель на структуру?

работа над моей мышцей C в последнее время и просмотр многих библиотек, с которыми я работал, безусловно, дали мне хорошее представление о том, что такое хорошая практика. Одна вещь, которую я не видел-это функция, которая возвращает структуру: something_t make_something() { ... } из того, что я впитал это...

Нуль всегда равен нулю в C?

вчера я брал интервью у парня на должность программиста среднего уровня, и он упомянул, что в C NULL не всегда равен нулю и что он видел реализации C, где NULL не равен нулю. Я нахожу это весьма подозрительным, но я хочу быть уверенным. Кто-нибудь знает, если он прав? (ответы не повлияют на мое мнение об эт...

Позволяет ли стандарт C присваивать указателю произвольное значение и увеличивать его?

хорошо ли определено поведение этого кода? #include <stdio.h> #include <stdint.h> int main(void) { void *ptr = (char *)0x01; size_t val; ptr = (char *)ptr + 1; val = (size_t)(uintptr_t)ptr; printf("%zun", val); return 0; } Я имею в виду, можем ли мы назначить какое-то...