c - C 中的 malloc : same sizeof before and after?

标签 c

我遇到了问题。我试图在不传递任何显式参数的情况下获取 int 数组中元素的数量,只是指向 int 数组的指针。现在我的好奇心:

int * set;
printf("-- %d --", sizeof(set)); //4
set=(int *) malloc(n*sizeof(int));
printf("-- %d --", sizeof(set)); //4  

为什么值是相同的,因为在 malloc 之前和之后它没有被初始化。谢谢
更新:
有什么方法可以获取 int 数组的长度?

最佳答案

因为 sizeof在编译时计算并产生 settype 的大小, 指向 int 的指针.

关于c - C 中的 malloc : same sizeof before and after?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10455800/

相关文章:

C 文件没有#?

c - Arduino 以太网网络服务器问题

当我的函数在 .h 和 .c 文件中具有相同的配置文件时出现冲突类型编译错误

c - 无符号整数位域移位产生有符号整数

c - 长度为4-20的数组?

c - 把所有东西都放在头文件中有什么*真正的*问题吗?

c - EVP_get_digestbyname : what is this . .?

带大括号的 case 语句

c - 返回字符串指针

c - 如何使用 HAL 库读取和显示 STM32F4 的 ADC 值