我是C++的新手,我对数组和指针感到困惑.有人能告诉我如何正确删除指针.例如,
int *foo;
foo = new int[10];
delete foo;
Run Code Online (Sandbox Code Playgroud)
要么
delete [] foo;
Run Code Online (Sandbox Code Playgroud)
谢谢.
我有以下代码
#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如何处理指向数组的指针?