#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
int a;//数入力
int z;
char *b;
char d;
printf("数を入力\n");
scanf("%d",&a);//①
b = (char*)malloc(sizeof(char) * a + 1);//入力された数の文字を入力できるメモリを確保する
printf("文字列を入力\n");
scanf("%s",&d);
strcpy(b,&d);
printf("%c\n",*b);
z= a/2;//②
printf("%d\n",&a);//③
printf("%d\n",&z);//④
free(b);
return 0;
}
例えばaに5を入力したところ、③では6422036④では6422032と出力されており、③と④の差から、これはaのアドレス値が出力されているのでは?とも考えましたが、その原因がわかりません。
よろしければ、どこにミスがあるのか教えていただきたいです。私の望む形は、
③に入力された値が④にはそれを2で割った数値が(小数点以下切り捨て)出力されるというものです。