相关疑难解决方法(0)

如何找到'sizeof'(指向数组的指针)?

首先,这里是一些代码:

int main() 
{
    int days[] = {1,2,3,4,5};
    int *ptr = days;
    printf("%u\n", sizeof(days));
    printf("%u\n", sizeof(ptr));

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

有没有办法找出ptr指向的数组的大小(而不是仅仅给出它的大小,在32位系统上是4个字节)?

c arrays pointers sizeof

288
推荐指数
8
解决办法
35万
查看次数

动态分配数组的大小

分配给动态分配的数组的起始地址的指针是否不具有数组大小的信息?所以我们必须使用另一个变量来存储它的大小,以便稍后通过指针处理数组.

但是当我们释放动态分配的数组时,我们不指定大小,而只是"free ptr"或"delete [] ptr".如何释放或删除知道数组的大小?我们可以使用相同的方案来避免将数组的大小存储在另一个变量中吗?

谢谢!

c c++ dynamic-allocation

15
推荐指数
2
解决办法
4450
查看次数

标签 统计

c ×2

arrays ×1

c++ ×1

dynamic-allocation ×1

pointers ×1

sizeof ×1