函数表示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
指向的内存块的大小。
我正在为下周的考试而学习,但在理解动态内存分配方面遇到了困难。我有一个问题不知道如何回答;
第 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
指向的内存块的大小。