Выделение памяти при обычном объявлении - C (СИ)
Формулировка задачи:
Пусть имеется некий код
У меня вопрос, как компилятор выделяет память всем переменным(кроме *ar, там маллок)? И на каком этапе происходит инициализация? То есть я допуская что может быть так, что сначала создаётся переменная f типа int, а присвоение происходит позже, на некой другой итерации, когда присвоение идет уже для всех.
int main(){ int a, b, c, d, e, f , g , e; int f = 15; int z = 51; double doub = 23.1; int *ar = malloc(600); }
Решение задачи: «Выделение памяти при обычном объявлении»
textual
Листинг программы
#include "stdafx.h" #include "stdio.h" #include "stdlib.h" int main() { int a, b, c, d, e, g; int f = 15; int z = 51; double doub = 23.1; int* ar = (int*)malloc(600); printf("%d %d %d %d %d %d %d %d %f %p\n",a, b, c, d, e, g, f, z, doub, ar); return 0; }
Объяснение кода листинга программы
- Объявление переменных: int a, b, c, d, e, g;
- Объявление переменных: int f = 15; int z = 51;
- Объявление переменной: double doub = 23.1;
- Выделение памяти под массив указателей на int с помощью malloc: int ar = (int)malloc(600);
- Вывод на экран значений переменных и адреса выделенной памяти: printf(
%d %d %d %d %d %d %d %d %f %p\n
,a, b, c, d, e, g, f, z, doub, ar); - Освобождение памяти: free(ar);
- Возврат 0, что означает успешный конец работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д