相同的文件,相同的文件大小,但两种不同的内存大小,为什么?

发布于 2024-12-11 19:27:53 字数 437 浏览 0 评论 0原文

FILE *fp;

short *originalUnPacked;
short *unPacked;

int fileSize;

fp = fopen(FILENAME, "r");
fseek (fp , 0 , SEEK_END);
fileSize = ftell (fp);
rewind (fp);

originalUnPacked = (short*) malloc (sizeof(char)*fileSize);
unPacked = (short*) malloc (sizeof(char)*fileSize);

printf ( "The UnPacked  : %d ", unPacked);
printf ( "The Original UnPacked  : %d ", originalUnPacked);

// 上面的打印语句打印两个不同的值,我的问题是为什么?

FILE *fp;

short *originalUnPacked;
short *unPacked;

int fileSize;

fp = fopen(FILENAME, "r");
fseek (fp , 0 , SEEK_END);
fileSize = ftell (fp);
rewind (fp);

originalUnPacked = (short*) malloc (sizeof(char)*fileSize);
unPacked = (short*) malloc (sizeof(char)*fileSize);

printf ( "The UnPacked  : %d ", unPacked);
printf ( "The Original UnPacked  : %d ", originalUnPacked);

// The above print statement prints two different values ,my question is Why ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

旧瑾黎汐 2024-12-18 19:27:53

我认为你不应该将 Short* 传递给 printf 。它需要一个简单的短路,对吧?

如果你打印一个短*,你不会得到大小,你会得到该内存所在的地址。

I don't think you should be passing short* to printf. It expects a simple short, right?

If you print a short*, you're not getting the size, you're getting the address of where that memory is.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文