使用指针知道数组的大小

Pra*_*abu 0 c memory arrays pointers sizeof

如何使用malloc分配的指针知道数组的大小?

#include <stdio.h>

int main(){
    int *ptr = (int *)malloc(sizeof(int * 10));
    printf("Size:%d",sizeof(ptr));
    free(ptr_one);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我只得到指针的大小,即8.如何修改代码以获得40的数组大小.

Alo*_*ave 6

你不能.
您需要进行簿记并自己跟踪.随着new你分配动态内存并释放你刚刚调用的内存delete,它知道它释放多少内存,因为语言在内部处理它,以便用户不需要打扰簿记.如果你仍然明确需要它,那么你需要通过单独的变量来跟踪它.