小编dav*_*vid的帖子

如何正确删除指向数组的指针

我是C++的新手,我对数组和指针感到困惑.有人能告诉我如何正确删除指针.例如,

int *foo;
foo = new int[10];

delete foo;
Run Code Online (Sandbox Code Playgroud)

要么

delete [] foo;
Run Code Online (Sandbox Code Playgroud)

谢谢.

c++

9
推荐指数
3
解决办法
1万
查看次数

指向int类型数组的指针的大小是多少?

我有以下代码

#include <stdio.h>
int main(void) {
    int arr[] = {10,20,30,40};
    int* ptr = arr;
    printf("%d\n",sizeof(arr));
    printf("%d",sizeof(ptr));
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出是

16
4
Run Code Online (Sandbox Code Playgroud)

C中指针的大小为4.'arr'也是指向整数的指针,但其大小为16,这是一个元素大小和元素数量的乘积.另一方面,如果我将相同的指针存储到另一个指针变量中,那么它的大小就变为4.这非常令人困惑.如果我尝试将arr作为参数发送到函数然后在该函数中打印arr的大小,则会发生同样的事情.C如何处理指向数组的指针?

c arrays pointers

0
推荐指数
1
解决办法
84
查看次数

标签 统计

arrays ×1

c ×1

c++ ×1

pointers ×1