通常的大小,我会用找到C中的数组++
int size = sizeof(array_name)/sizeof(double)
但是发现双数组的大小,我使用名为“等级”作为一个类中的成员被称为双阵列“成绩”
class Grades{
private:
double grades[1024];
public: Grades(string gradeList);
Grades();
int getNumGrades();
string toString();
};
双数组稍后填充在构造函数中。然而,当我做
cout << "size = " << (sizeof(grades)/sizeof(double)) << endl;
它总是给我1024.这是在它填充了一些随机值后的构造函数的末尾。我填充了5个值。我怎样才能让这个返回填充元素的数量?
你可以用'的std ::矢量',避免跟踪添加和'double's数组去除所有的头痛。 –
2014-11-08 06:03:34
总是要注意'sizeof'是编译时间定义的(很少发生异常,忽略)。因此,表达式将始终为'1024'(因为编译器已将'1024'放在那里!) – Ajay 2014-11-08 10:15:12