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

问题描述:

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); 

//上面的打印语句打印两个不同的值,我的问题是为什么?相同的文件,相同的文件大小,但两种不同的内存大小,为什么?

+0

'malloc'返回一个指向新分配的内存的指针(如果发生故障则返回NULL),而不是分配的内存块的大小。 –

我不认为你应该将short *传递给printf。它期望一个简单的,对吗?

如果你打印一个简短的*,你没有得到大小,你得到的是内存的地址。