我如何使用使用 malloc 分配的指针知道数组的大小?
#include <stdio.h>
int main(){
int *ptr = (int *)malloc(sizeof(int * 10));
printf("Size:%d",sizeof(ptr));
free(ptr_one);
return 0;
}
在这种情况下,我只得到指针的大小,即 8。如何修改代码以获得数组的大小,即 40。
最佳答案
你不能。
您将需要自己记账并跟踪记录。使用 new
分配动态内存,并在释放内存时调用 delete
,它知道释放了多少内存,因为语言会在内部处理它,以便用户执行无需为记账操心。如果您仍然明确需要它,那么您需要通过单独的变量来跟踪它。
关于c - 使用指针知道数组的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18570362/