为什么不能在动态分配的内存块中存储极大的单个值?

问题描述 投票:0回答:1

为什么不能在此分配的内存块中存储大整数?

int *dyn = malloc(16);
*dyn = 9999999999;

printf("%lli\n", *dyn);

free(dyn);

[在编译时,GCC警告我将发生整数溢出。确实,当打印出来时,它已经溢出了。

为什么我不能使用整个内存块来存储单个值?

c dynamic-memory-allocation
1个回答
0
投票

dyn是整数指针。*dyn是整数。

9999999999分配给int会导致变量溢出,因为int仅允许[−32767,+32767]范围。

© www.soinside.com 2019 - 2024. All rights reserved.