2
我的編譯器在Veccreator函數中初始化浮點數組時出現運行時錯誤。我在這裏只是發佈我的代碼樣本的示例。無法使用{0}初始化float數組
#include<iostream>
using namespace std;
#define SIZE 1000
class Vector
{
private:
float vecarray[SIZE];
public:
void VecCreator(int dimension)
{
vecarray[SIZE]= { 0 };
cout << "Enter " << dimension << " digits" << endl;
for (int i = 0; i < dimension; i++)
{
cin >> vecarray[i];
}
}
};
int main(void) {
Vector obh;
obh.VecCreator(2);
}
但它正常工作與此:`
#include<iostream>
using namespace std;
#define SIZE 1000
class Vector
{
private:
float vecarray[SIZE]= {0};
public:
void VecCreator(int dimension)
{
cout << "Enter " << dimension << " digits" << endl;
for (int i = 0; i < dimension; i++)
{
cin >> vecarray[i];
}
}
};
int main(void) {
Vector obh;
obh.VecCreator(2);
}
請告訴我,爲什麼第一個代碼給錯誤。
搜索並閱讀關於*構造函數初始值設定項列表*。 –
爲了幫助人們回答您的問題,您需要更加具體地瞭解錯誤。請[編輯]您的帖子以合併您從[mcve]中獲得的確切錯誤(最好使用複製+粘貼以避免轉錄錯誤)。 –
這是一個緩衝區溢出。在C中,數組索引是從零開始的。你的表達式vecarray [SIZE] = 0'指定一個超過數組最後一個索引的值,即SIZE-1。 –