#include <stdio.h>
#include <stdlib.h>
#include <string.h>

/* constantes et variables globales */
const int const_int = 0;
int global_int = 0;
int global_array[] = {1, 2, 3};
char global_string[50];

int main(void)
{
  /* variables locales a la fonction main() */
  int i = 0;
  int* pti =  &i;
  char* static_local_string = "tototo";
  char* dynamic_local_string = (char*) malloc(512);
  int local_array[2];
  static int static_integer = 10;
  char c;

  strcpy(global_string, "-------------------------");

  printf("%s\n", global_string);
  printf("&const_int = %p\n&global_int = %p\nglobal_array = %p\nglobal_string = %p\n", &const_int, &global_int, global_array, global_string);
  printf("%s\n", global_string);
  printf("&i = %p (pti = %p, &pti = %p)\n", &i, pti, &pti);
  printf("%s\n", global_string);
  printf("&static_local_string = %p (static_local_string = %p)\n", &static_local_string, static_local_string);
  printf("&dynamic_local_string = %p (dynamic_local_string = %p)\n", &dynamic_local_string, dynamic_local_string);
  printf("%s\n", global_string);
  printf("local_array = %p\n", local_array);
  printf("&static_integer = %p\n", &static_integer);
  printf("%s\n", global_string);
  printf("&main = %p, &strcpy = %p\n", main, strcpy);

  /* attente pour recuperation du numero de processus */
  scanf("%c", &c);

  return 0;
}
