Вопрос по C или C++ (дизассемблер)

124
28 мая 2021, 17:50

Если функция (FUN_001dd74c) просто выполняется и значение которая она возвращает ни к чему не присваивается это влияет на выполнение дальнейшего кода ?

int *local_50;
int Number_char;
**********
FUN_001dd74c(&local_50,Number_char,5);
**********
int ** FUN_001dd74c(int **param_1,int param_2,int param_3){
------Code_------
}
*******

P.s. Сам не работал раньше с C++ и C, и мне не понятно что означает &local_50;

Answer 1
  1. &local_50 означает получение адреса в памяти переменной local_50 в виде целого числа int. (Однако для хранения используется не тип int, а специальный тип – указатель).
  2. Если с возвращаемым значением не производится никаких действий, в данном случае это не значит, что не произойдёт ничего. Причина проста: в функцию передаётся указатель на область памяти, следовательно, она может изменить информацию, хранящуюся в этой области.

Так как в данном случае local_50 уже является указателем на число типа int, то &local_50 возвратит значение типа int**, то есть указатель на указатель на int (указывает на область памяти, в которой хранится число, обозначающее область памяти, в которой лежит информация), который и принимает Ваша функция.

READ ALSO
Время жизни переменных в лямбде функции?

Время жизни переменных в лямбде функции?

Время жизни переменных, которые передают в область захвата(в квадратные скобки) лямбды-функции по значению

88
задача на симетричное отображений

задача на симетричное отображений

В общемЕсть задача Так же есть вот такой код размещения '*' Число логически в голове крутится версия проще ( с помощью abs()) Но никак не могу продумать...

129
С++ Возврат из функции по значению

С++ Возврат из функции по значению

Я новичок в С++ 11, поэтому возникают подобные вопросы))

112