找不到内存错误
Can't find memory error
我正在编程银行模拟,作为多态练习,但我遇到了一些内存错误。我可以对每个向量的第一项进行 malloc,但是如果我调用它的任何函数,程序就会崩溃。如果我尝试 malloc 除 1 以外的任意数量的项目,也会发生同样的情况;(NCP 或 NCC>Malloc 演员表中的 1
)int main(){
ContaPoupanca *contasp;
ContaCorrente *contasc;
int k = 0;
int ncp = 3;
int ncc = 3;
(...)
switch(k){
case 1: {
int asd;
std::string nome_titular;
int n_conta;
std::cout<<"n 1 - Corrente n 2 - Poupança";
std::cin >> asd;
std::cout<<"nNome do Titular: ";
std::cin>> nome_titular;
if(asd == 1){
std::cout<<"nº de aplicações: (max 5)n";
std::cin>>asd;
if(asd>5) asd=5;
if(asd<0) asd=0;
ncc++;
n_conta = ncc + 2501000 - 1;
contasc = (ContaCorrente*) malloc(ncc*sizeof(ContaCorrente));
contasc[ncc-1] = ContaCorrente(nome_titular,n_conta,1.07,0,asd);
}else{
ncp++;
n_conta = ncp + 2502000 - 1;
contasp = (ContaPoupanca*) malloc(ncp*sizeof(ContaPoupanca));
contasp[ncp-1] = ContaPoupanca(nome_titular,n_conta,1.05,0);
}
std::cout<<"nConta criada com sucesso.n O nº da conta é "<<n_conta<<"n";
break;
(...)
case 6: {break;}
}
}while(k!=6);
free(contasc);
free(contasp);
return 0;
}
不要在C++对象上使用 malloc 或 free。请改用新建和删除。
Malloc 不调用任何构造函数,Free 不调用任何析构函数。这就是你崩溃的原因。新建和删除做。
相关文章:
- 多个文件的内存分配错误"在抛出 'std :: bad_alloc' what (): std :: bad_alloc 的实例后终止调用" [C++]
- 是否值得降低我的代码的可读性,以便在出现内存不足错误时提供异常安全性?
- 内存错误低于在C++年实现埃拉托色尼筛分时的预期
- 共享内存:MapViewOfFile 返回错误 5
- 将 vector<vector<int>> 传递到函数中会产生内存错误
- 释放动态内存时C++错误
- 我有一个线程 1:EXC_BAD_ACCESS(代码 = 1,地址 = 0x8)错误.我认为这是由于内存管理不好.我可以
- 复制内存给出分段错误
- C++程序错误:malloc():内存损坏
- 在我的以下代码中获取 MLE(内存限制错误).尝试解决 ROUND C 2019(问题 A-摆动行走)启动问题
- 为什么删除分配的阵列会导致内存错误?
- 需要找到3个小错误-内存错误
- 错误:内存位置的 std::length_error
- 修复了瓦尔格林德错误内存泄漏的错误
- 错误:“内存集”未在此范围内声明
- OpenCV 2.4.5运行时错误内存
- OpenCV错误:内存不足
- STL映射,设置错误:内存超出分配块的末尾
- GLUT:致命错误:内存不足
- MPI错误:内存不足-有哪些解决方案选项