访问冲突帮助c++
Access violation help C++
我目前在我的代码中得到此错误:bankAccountp5.exe中0x0FF321E8 (msvcp110d.dll)的未处理异常:0xC0000005:访问违规写入位置0xCCCCCCF8。我确信这与我创建的一个对象数组有关。
下面是我的部分代码:
class bankAccount: public bankBranch
{
public:
bankAccount(int, int, int, string, int);
int setAccountNumber ()
{
bankAccountNumber = ++minAccountNumber;
return this->bankAccountNumber;
}
void setAccountBalance ()
{
for(i = 0; i < getNumOfBankAccounts(); i++)
{
cout << "Enter the balance for your bank Account: " << endl;
cin >> accounts[i]->bankAccountBalance;
if (bankAccountBalance > MAX_BALANCE || bankAccountBalance < MIN_BALANCE)
{
cout << "Incorrect bank balance, please try again!" << endl;
--i;
} else {
++i;
}
}
}
void menuSystem(int choice) {
}
void displayBankBranchDetails()
{
cout << "n";
cout << "DETAILS OF YOUR BANK BRANCH" << endl;
cout << "BSB Number: " << this->getBsbNumber() << endl;
cout << "Address: " << this->getAddress() << endl;
cout << "Postal code: " << this->getPostCode() << endl;
}
void setBankAccountDetails() {
}
int getNumOfBankAccounts() {
return this->numOfBankAccounts;
}
void createBankAccounts()
{
valid = false;
while (valid == false) {
cout << "How many Bank Accounts would you like to create under the Bank Branch BSB: " << getBsbNumber() << endl;
cin >> numOfBankAccounts;
if ( numOfBankAccounts <= MAX_NUMBER_ACCOUNTS)
{
valid = true;
} else {
valid = false;
}
}
}
private:
//bankAccount Data
int bankAccountNumber;
int numOfBankAccounts;
int bankAccountBalance;
int interestRate;
//constants
const static int MAX_NUMBER_ACCOUNTS = 10;
const static int MAX_BALANCE = 100000;
const static int MIN_BALANCE = 0;
//objects
bankBranch homeBranch;
bankAccount* accounts[MAX_NUM_ACCOUNTS];
//misc
int minAccountNumber;
int i;
bool valid;
};
错误发生时,我得到无效setAccountBalance(),我调用对象的帐户数组,谁能帮助我这个?欢呼。
你已经声明了一个指针数组,你必须动态地为它分配内存,bankAccount* accounts[MAX_NUM_ACCOUNTS];
此外,您不需要在setAccountBalance()
This
bankAccount* accounts[MAX_NUM_ACCOUNTS];
创建一个指针数组。下一步需要为每个帐户实际分配内存。就像
accounts[some-index] = new bankAccount();
accounts = new bankAccount[MAX_NUM_ACCOUNTS];
需要在您的一个函数中完成。你已经声明了一个动态数组,但仍然需要初始化它。
在包含项后添加using std::vector
。这样你就不需要一直键入std::vector,你可以直接说vector。
那么,vector<bankAccount> accounts
将声明一个名为accounts的向量。添加新帐户时,只需调用accounts.push_back(_______)
即可。你可以使用[]
和accounts.size()
访问元素
正如@scottwilson所说。相反,使用包含静态分配的bankAccount
s的std::vector<bankAccount>
。
否则,您可能必须为每个bankAccount
指针静态地或动态地分配内存。
你还需要一个createBankAccount()
函数,当你想要另一个bankAccount
对象时,它将为你分配这个对象:
一样:
public:
void createBankAccount() {
accounts[getNumberOfBankAccounts()] = new bankAccount();
numOfBankAccounts++;
}
每次需要一个新的银行账户时调用这个函数。
- 需要帮助设置在C++中使用的Potrace
- 在指针的帮助下,文本文件中单词的频率
- 计算每个节点的树高,帮助我解释这个代码解决方案
- 如何在Qbutton的帮助下更改Q对话框的宽度
- 需要帮助将结构数组传递给函数
- C++需要帮助从用户那里获得一个整数,并确保它在另外两个整数之间
- 需要帮助在 c++ 中将字符串转换为字符 ----错误 "const char *" 类型的值不能用于初始化 "char" 类型的实体
- 有人可以帮助我处理正则表达式吗?
- C++调用具有 *this 属性的单个帮助程序函数
- C++:需要帮助了解运算符重载错误
- 需要以下代码的帮助,下面的代码有什么问题
- CS1 项目帮助C++
- 用于检查值是否为其任何参数的帮助程序函数
- 需要有关此 if 语句的帮助
- 类型限定宏帮助程序
- CoreCLR 中的检测探查器 - 将帮助程序程序集加载到 dotnet 进程的方法
- NS3 插槽混淆(需要帮助理解)
- 设计帮助 - 为不同类型的消息处理通用接口的设计模式
- 需要帮助查找内存泄漏
- 有人可以帮助我理解这些参数/参数吗?