【发布时间】:2016-01-16 23:54:22
【问题描述】:
我的代码是
#include <iostream>
#include <string>
using namespace std;
struct Numbers{
int a;
int b;
int c;
};
struct NumbersArray{
int size;
Numbers *numbers;
};
int main(){
NumbersArray numArr;
numArr.size = 10;
numArr.numbers = new Numbers[10];
for(int i = 0; i < 10; i++){
Numbers *num = new Numbers;
num->a = i * 3 + 0;
num->b = i * 3 + 1;
num->c = i * 3 + 2;
numArr.numbers[i] = num;
}
}
基本思想是我创建一个名为 Numbers 的结构,其中包含 3 个数字,并将其放入一个名为 NumbersArray 的包装结构中。 当我用 g++ 编译它时,我收到了错误消息
testArrayStruct.cc: In function ‘int main()’:
testArrayStruct.cc:23:27: error: no match for ‘operator=’ (operand types are ‘Numbers’ and ‘Numbers*’)
numArr.numbers[i] = num;
^
testArrayStruct.cc:23:27: note: candidate is:
testArrayStruct.cc:4:8: note: Numbers& Numbers::operator=(const Numbers&)
struct Numbers{
^
testArrayStruct.cc:4:8: note: no known conversion for argument 1 from ‘Numbers*’ to ‘const Numbers&’
这里忽略内存管理。 我不知道如何向数组中添加元素。
【问题讨论】:
-
阅读 c++ 中的指针与值。
标签: c++ arrays operator-keyword