gpt4 book ai didi

c++ - 不熟悉使用 'new' 进行内存分配 (C++)

转载 作者:行者123 更新时间:2023-11-30 00:39:45 24 4
gpt4 key购买 nike

我正在处理一些遗留代码。我有以下数据类型:

typedef struct {

char *name ;

ColumnType type ;

unsigned pos ; //column position in table

CellData **data ; //ptr to list of cells in column

}Column ;

struct _table {

char name[TABLE_NAME_LEN+1] ;

unsigned int num_rows ;

unsigned int num_cols ;

Column **cols ; //ptr to list of columns

};



struct _table m_

在源码中,有如下语句:

m_table.cols = new Column*[m_table.num_cols];

我熟悉 new[],但我不确定乘法运算符在那里做什么 - 可以解释一下吗?

最佳答案

这不是乘法。符号 * 在 C++ 中有许多完全不同的含义,完全取决于上下文。

在您的例子中,您正在创建一个动态数组 Column*,即指向 Column 的指针。

换句话说,您说的是 new T[N];,其中 T = Column*

关于c++ - 不熟悉使用 'new' 进行内存分配 (C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8000627/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com