【发布时间】:2021-09-17 09:54:12
【问题描述】:
我正在尝试在结构内的任何函数之外(全局)动态分配一些内存。但是我得到了这个错误
struct filaNoua{
string numeClient, numeOperatorDate
int * tipFier, * diametruFier, * lungimeFier;
tipFier = (int *) malloc(50 * sizeof(int));
}
错误:此声明没有存储类或类型说明符
【问题讨论】:
-
您缺少分号。你有一个
struct的赋值语句inside。 -
你不能只是在一个结构中放任意代码。
tipFier = (int *) malloc(50 * sizeof(int));需要在函数中。在这种情况下,应该使用结构的构造函数。虽然你为什么在 c++ 程序中使用 malloc? -
您在
string声明行的末尾以及struct右大括号的末尾缺少分号。 -
您应该创建一个构造函数并在构造函数中使用
operator new。在析构函数中,使用delete。您可能希望创建一个复制构造函数来强制代码复制指针或复制tipFier指向的目标。另一种选择是使用std::vector而不是分配内存。