Запитання з тегом «local-variables»

20
Чи можна отримати доступ до пам'яті локальної змінної за її межами?
У мене є такий код. #include <iostream> int * foo() { int a = 5; return &a; } int main() { int* p = foo(); std::cout << *p; *p = 8; std::cout << *p; } А код просто працює без винятку з виконання! Вихід був 58 Як це може бути? …

8
Яка область змінної, ініціалізованої в операторі if?
Я новачок у Python, тому це, мабуть, просте питання щодо визначення масштабів. Наступний код у файлі (модулі) Python мене трохи бентежить: if __name__ == '__main__': x = 1 print x В інших мовах, над якими я працював, цей код буде кидати виняток, оскільки xзмінна є локальною для ifоператора і не …

4
Чому для локальних змінних потрібна ініціалізація, а поля - ні?
Якщо я створюю bool у своєму класі, просто щось подібне bool check, воно за замовчуванням відповідає false. Коли я створюю той самий bool у своєму методі, bool check(замість класу), я отримую помилку "використання непризначеної перевірки локальної змінної". Чому?

2
Як витягуєте інформацію про локальну змінну (адресу та тип) з програми Delphi або інформації про налагодження, створеної компілятором?
Моя мета: З огляду на підвішений потік 32-ти або 64-розрядної програми Windows, складеної Delphi, для проходження стека (виконання) Дано записи стеків для перерахування локальних змінних у кожному методі та їх значень. Тобто, принаймні, знайдіть їх адресу та тип (integer32 / 64 / підписаний / неподписаний, рядок, плаваючий, запис, клас ...), …

9
"Час життя" рядкового літералу в C
Чи не буде недоступним покажчик, який повертає наступна функція? char *foo(int rc) { switch (rc) { case 1: return("one"); case 2: return("two"); default: return("whatever"); } } Тож час життя локальної змінної в C / C ++ практично лише в межах функції, так? Що означає, що після char* foo(int)завершення вказівник, який …

2
Чому в ArrayBlockingQueue копіюється поле остаточного члена в локальну кінцеву змінну?
В ArrayBlockingQueue, всі методи , які вимагають блокування скопіювати його в локальну finalзмінну перед викликом lock(). public boolean offer(E e) { if (e == null) throw new NullPointerException(); final ReentrantLock lock = this.lock; lock.lock(); try { if (count == items.length) return false; else { insert(e); return true; } } finally …

4
Чому ми не можемо отримати доступ до статичного вмісту через неініціалізовану локальну змінну?
Погляньте на код нижче: class Foo{ public static int x = 1; } class Bar{ public static void main(String[] args) { Foo foo; System.out.println(foo.x); // Error: Variable 'foo' might not have been initialized } } Як ви бачите , при спробі поля статичного доступу xчерез неініціалізованих локальну змінну Foo foo;коду …

8
Значення за замовчуванням та ініціалізація в Java
Виходячи з мого посилання , примітивні типи мають значення за замовчуванням, а об’єкти - нульові. Я протестував шматок коду. public class Main { public static void main(String[] args) { int a; System.out.println(a); } } Рядок System.out.println(a);буде помилкою, яка вказує на змінну, aяка говорить, variable a might not have been initializedтоді …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.