函数表示returns变量占用内存位置的大小c++

Function that returns the size of the memory location occupied by variable c++

我正在为下周的考试而学习,但在理解动态内存分配方面遇到了困难。我有一个问题不知道如何回答;

第 4 行: int *arr = new int[3];

编写一个函数,其中包括上面的第 4 行和 returns 变量 arr 占用的内存位置的大小。 使用签名:

int size_of_variable_star_arr() ;

我假设我应该同时使用 main.cpp 和 function.cpp - 主文件应该包含数组变量,而函数文件应该包含 returns 的数组它。

虽然为了 return 内存位置的大小,但不完全确定在这里做什么。

 //Main.cpp
 #include <iostream>
using namespace std;

int main(){
//int *arr = new int[3];

arr[0] = 1;
arr[1] = 2; 
arr[2] = 3;
arr[3] = 4;

cout << "Array: ";
}


 //function.cpp
 #include <iostream>
 using namespace std;

 int size_of_variable_star_arr(){
 int *arr = new int[3];
   for(int i = 0; i < 4; i++){
       cout << arr[i] << " ";
  }
  return 0;
}

这是一个非常奇怪的问题,但无论如何答案如下:

int size_of_variable_star_arr() {
    int *arr = new int[3];
    delete [] arr;
    return sizeof(arr);
}

备注:

  • 我添加了 delete [] 以撤消(不必要的)new
  • 它 returns 变量的大小 arr,如问题中所述。 不是 arr 指向的内存块的大小。