我正在努力与realloc ...
strucType mkBggr (structType x, char ch) {
x = realloc(x, 100);
printf("%d", sizeof(x));
}
我认为这应该打印出值100,但它会打印8。
它显然与指针有关,但我不知道是什么。我在x的前面添加了* s和& s,但我似乎无法得到它。任何帮助表示赞赏!
答案 0 :(得分:2)
Realloc返回一个指针,因此x是指针类型。 sizeof(x)返回指针的大小,在此环境中为8个字节。
答案 1 :(得分:0)
它打印值8,因为您要求指针(x)的大小。您无法打印已分配内存块的大小 - 您必须自己跟踪它。
这就是为什么我不推荐使用realloc;我看到的所有人都在问它是错误的。