通过sizeof(长)

时间:2015-10-11 10:33:57

标签: pointers sizeof

char        *foo1 = (char*)malloc(8 * sizeof(foo1));
char        foo2[8];
static char foo3[8];

if ((uintptr_t)fooX % sizeof(long) == 0)
    printf("Zero\n");
else
    printf("Non-zero\n");
  • 用foo1替换fooX会打印“Zero”。
  • 用foo2替换fooX会打印“Zero”。
  • 用foo3替换fooX会打印“非零”。

我理解代码,但我不知道为什么我的每个foo都得零或非零,既不会得到零或者没有(因为有其他方式/关键字来声明变量)。你能解释一下吗?

此代码部分取自this post关于memcpy()

0 个答案:

没有答案