【发布时间】:2018-08-04 03:46:20
【问题描述】:
有什么方法可以找到在这段代码中为RandomArray 分配了多少字节
#include<stdio.h>
#include<stdlib.h>
int main()
{
int *RandomArray;
int n;
srand(time(NULL));
RandomArray=malloc(sizeof *RandomArray * (rand()%11));
printf("%d %d",sizeof(RandomArray),sizeof(*RandomArray));
return 0;
}
我也不知道上面的代码是否会有任何实际用途。但我是从编程的角度来看的。
【问题讨论】:
-
不..需要自己跟踪。
-
而且您不保存
rand()%11的结果并验证它是否大于零,因为...? -
@DavidC.Rankin 好吧,
malloc(0)并不违法。 -
也不是很有用……
-
是的,明白了,这里的整个问题是,如果您不保存分配的大小,就没有魔杖可以挥动将其取回......这是其中之一自己在额头”类型的问题。
标签: c dynamic-memory-allocation