如何分配内存并在带有函数的 c++ 中返回

How can I allocate memory and return with in c++ with function?

本文关键字:函数 c++ 返回 何分配 分配 内存      更新时间:2023-10-16

我用 c++ 创建了一个表。我有一个桌子技能的课程。我想为带有函数的方桌获取内存,但我不知道应该如何编写构造函数和函数以进行内存分配。

我从键盘上获取大小,我想为分配内存的另一个函数提供此 return 语句。表必须是二维数组 [][] 或矩阵。

#include <iostream>
using namespace std;
class Table {
    unsigned int size;
    public:
        unsigned int GetTableSize();
        unsigned int *GetMemory(unsigned int);
};
unsigned int Table::GetTableSize() {
    cout << "Give size: " << endl;
    cin >> size;
    return size;
}
unsigned int *Table::GetMemory(unsigned int s){
    s = size;
    return new unsigned int[s * s];
}
int main()
{
    Table tab;
    tab.GetTableSize();
    tab.GetMemory();
    return 0;
}

*GetMemory 函数必须随表的内存大小一起返回。我有标签问题。获取内存。我也尝试了tab.*GetMemory。

tab*GetMemory:

QT创建者说:GetMemory没有声明。标签。GetMemory:Qt创建者说:不匹配调用"Table::Getmemory"的函数。

首先,您的问题不是很清楚,我想告知您在Qt中遇到的错误。

在您的代码中,您没有在以下行中传递任何值"标签。GetMemory((;">

您的函数如何期望无符号整数值。

我想建议你可以修改下面的代码片段,如下所示

您的代码:

unsigned int *Table::GetMemory(unsigned int s){
    s = size;
    return new unsigned int[s * s];
}

修改后的代码:

unsigned int *Table::GetMemory(){
    //s = size;
    return new unsigned int[size * size];
}

希望有帮助。