チェックこのC
プログラム:上記のコードを実行sizeofで使用するときにNULLポインタにアクセスする方法を理解するには?
#include <stdio.h>
int main(void) {
// your code goes here
char **p = NULL;
printf("%d,%d\n", sizeof(*p), sizeof(**p));
return 0;
}
、結果は次のとおりです。
8,1
p
がNULL
ですが、それはsizeof(*p)
とsizeof(**p)
でプログラムのクラッシュを引き起こすことはありません。この行動を理解するには? c仕様で保証されていますか?
'sizeof(* p)'は 'sizeof(char *)'と 'sizeof(** p)'だけです 'sizeof(char)'です –
警告:UBは保証しませんとにかく_crash_。 –