相同的文件,相同的文件大小,但两种不同的内存大小,为什么?
问题描述:
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);
//上面的打印语句打印两个不同的值,我的问题是为什么?相同的文件,相同的文件大小,但两种不同的内存大小,为什么?
答
我不认为你应该将short *传递给printf。它期望一个简单的,对吗?
如果你打印一个简短的*,你没有得到大小,你得到的是内存的地址。
'malloc'返回一个指向新分配的内存的指针(如果发生故障则返回NULL),而不是分配的内存块的大小。 –