c - 使用指针了解数组的大小

标签 c arrays pointers memory sizeof

如何使用使用 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/58116333/

相关文章:

c++ - 基本的 C 风格字符串复制

java - 使用 JNI 创建一个简单的 dll 文件

c - FFTW 在输出中交错零(不是末尾填充)

java - 通过计算数组结果来做到这一点是明智的方法吗?

c - 按特定顺序对 argv 进行排序

c++ - 更小的指针......可能吗? (没有较低规范的系统)

c - #define 宏用于 C 中的调试打印?

c - mktime 显示不一致的输出

java - 如何从字符串数组中删除一个值并减少其长度

c - 如何使用带有标准输入流的 fscanf 终止 while 循环