Выделение памяти при обычном объявлении - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Пусть имеется некий код
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);
}
У меня вопрос, как компилятор выделяет память всем переменным(кроме *ar, там маллок)? И на каком этапе происходит инициализация? То есть я допуская что может быть так, что сначала создаётся переменная f типа int, а присвоение происходит позже, на некой другой итерации, когда присвоение идет уже для всех.

Решение задачи: «Выделение памяти при обычном объявлении»

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;
}

Объяснение кода листинга программы

  1. Объявление переменных: int a, b, c, d, e, g;
  2. Объявление переменных: int f = 15; int z = 51;
  3. Объявление переменной: double doub = 23.1;
  4. Выделение памяти под массив указателей на int с помощью malloc: int ar = (int)malloc(600);
  5. Вывод на экран значений переменных и адреса выделенной памяти: printf(%d %d %d %d %d %d  %d %d %f %p\n,a, b, c, d, e, g, f, z, doub, ar);
  6. Освобождение памяти: free(ar);
  7. Возврат 0, что означает успешный конец работы программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.5 из 5
Похожие ответы