首页 > 解决方案 > 我要求 calloc 为 10 个字符分配内存,但它的 sizeof 返回 8

问题描述

我要求 calloc 分配 11 个字符的 sizeof:

someString = calloc(11, sizeof(char));

然后我使用 printf 打印出使用 sizeof 获得的 someString 的大小。

printf("the size of callocked array is %lu\n", sizeof(someString));

但是,报告的不是 11 个字节(因为每个字符都是一个字节),而是 8 个。

the size of callocked array is 8

即使要求 calloc 为 23 个字符而不是 11 个字符分配内存,它仍然是 8 个。这是怎么回事?

标签: cpointers

解决方案


推荐阅读