使用动态数组访问违规写入位置

时间:2017-05-01 00:01:10

标签: c++

我正在开展一个大项目,但我无法解决这个问题。我确定它有一些我忽略的语法。我在下面的代码中将其简化为此问题。我在一个函数中创建了一个动态数组,但它不会传入return函数。我正在获取Access违规写入位置,所以我知道它与动态数组的指向有关。我编码了36个小时,所以任何建议都会有很大的帮助。

Header.h

#ifndef HEADER_H
#define HEADER_H        
struct process {
    int thing1;
    int thing2;
};
class join {
private:
int something;
int something2;
process * p;
public:
    join();
    void SetT(int);
    void SetP();
    void returnP();
};
#endif // !Header_h

Header.cpp

#include "Header.h"
#include <iostream>
using namespace std;
join::join() {
    something = 0;
    something2 = 0;
}
void join::SetT(int ST) {
    something = ST;
}
void join::SetP() {
    process * p = new process[something];
}
void join::returnP() {
    p[1].thing1 = 12;       //error occurs
    cout << p[1].thing1;
}

Source.cpp

#include "Header.h"
#include <iostream>
using namespace std;
int main() {
    join j;
    j.SetT(2);
    j.SetP();
    j.returnP();
}

0 个答案:

没有答案