30/09/2018, 17:09
Lỗi memcpy.asm not found
Các anh chị cho e hỏi? Sao chương trình của e bị lỗi phải break nếu nhập từ 3 sinh viên trở lên ! Em xin cảm ơn.
Sau đây là code của e :
Candidate.h
#pragma once
#include "iostream"
#include <cstring>
using namespace std;
class Candidate
{
public:
Candidate();
~Candidate();
void setName(const string &name);
string getName() const;
void setMssv(int mssv);
int getMssv();
void setToan(int toan);
int getToan();
void setVan(int van);
int getVan();
void setAnh(int anh);
int getAnh();
int tongdiem();
private:
int m_mssv , m_toan , m_van, m_anh;
string m_name;
};
```
Candidate.cpp
#include "Candidate.h"
#include "cstring"
#include "iostream"
using namespace std;
Candidate::Candidate()
{
m_name = " ";
m_toan = 0;
m_van = 0;
m_anh = 0;
}
Candidate::~Candidate()
{
}
void Candidate::setName(const string &name)
{
m_name = name;
}
std::string Candidate::getName() const
{
return m_name;
}
void Candidate::setMssv(int mssv)
{
m_mssv = mssv;
}
int Candidate::getMssv()
{
return m_mssv;
}
void Candidate::setToan(int toan)
{
m_toan = toan;
}
int Candidate::getToan()
{
return m_toan;
}
void Candidate::setVan(int van)
{
m_van = van;
}
int Candidate::getVan()
{
return m_van;
}
void Candidate::setAnh(int anh)
{
m_anh = anh;
}
int Candidate::getAnh()
{
return m_anh;
}
int Candidate::tongdiem()
{
return m_toan + m_anh + m_van;
}
Main:
#include "Candidate.h"
#include "stdio.h"
#include "iostream"
#include "string"
using namespace std;
int main()
{
int n = 0, i = 0, temp;
char name[20];
cout << "Nhap so luong thi sinh can tao ";
cin >> n;
cout << "-------------------------------" << endl;
Candidate *sv = new Candidate[n];
for (i = 1; i <= n; i++)
{
cout << "Nhap ten thi sinh thu " << i << " ";
fflush(stdin);
cin.getline(name, 40);
sv[i].setName(name);
cout << "Nhap mssv thu " << i << " ";
cin >> temp;
sv[i].setMssv(temp);
cout << "Nhap diem toan hoc sinh thu " << i << " ";
cin >> temp;
sv[i].setToan(temp);
cout << "Nhap diem van hoc sinh thu " << i << " ";
cin >> temp;
sv[i].setVan(temp);
cout << "Nhap diem anh hoc sinh thu " << i << " ";
cin >> temp;
sv[i].setAnh(temp);
cout << "---------------------------------" << endl;
}
for (i = 1; i <= n; i++)
{
cout << "Ten thi sinh thu " << i << " la";
cout<<sv[i].getName();
cout << "Mssv thu " << i << "la ";
cout << sv[i].getMssv() << endl;
cout << "Tong diem la ";
cout << sv[i].tongdiem() << endl;
}
delete[] name;
system("pause");
}
Bài liên quan
Khoa miêu tả rõ hơn tí, mình nhập vào như thế nào nhỉ?
Nếu e chọn nhập 3 sv thì e nhập vào sv 1 ,sv 2 thì ok nhưng tới sv 3 thì xuất hiện lỗi nó hiện lên cái khung bắt mình phải break,break xong thì nó hiện lên một trang memcpy.asm not found,Nếu chọn nhập 4 sv thì sv 1,2,3 thì ok tới sv 4 thì bị lỗi. Em có tìm hiểu trên mạng thì có người bảo
You’re attempting to copy data to a pointer that points to NULL.
E.g. you haven’t allocated memory for the ptr.
Từ 0 đến n-1 thôi bạn.
Sao khi sửa lại theo bạn thì chương trình chạy được ròi , cám ơn bạn nhiều lắm . Nhưng mình vẫn chưa hiểu tại sao sữa lại v thì chương trình chạy được vậy bạn.
Trong nhiều ngôn ngữ lập trình, có C/C++, mảng bắt đầu từ 0. Thế nên vòng for phải là
Hoặc
À e hiểu ròi cám ơn a