C言語でint型のメモリを確保するときの動作について質問です。
C
1#include <stdio.h> 2#include <stdlib.h> 3#include <string.h> 4 5 6int main (int c, char* param[]) { 7 8 int *ip = NULL; 9 10 ip = (int*)malloc(1); 11 printf("%d", sizeof(ip)); 12 printf("\r\n"); 13 *ip = 12345; 14 printf("%d", *ip); 15 exit(2); 16}
上記のようなコードを書いたとき
確保するメモリを1バイトと静的に指定している場合だと1バイトのサイズのみ確保しないと思っていたのですが
上記出力は4バイトと出力されました。
特に
ip = (int*)malloc(1)の部分ですが
これがなぜ1バイトと指定しているのに4バイトが返ってくるのでしょうか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。