"ヒープ"に整数を保持するクラスを持つC++プログラムを作成しようとしていますが、クラスの最初のアイテムを返すメソッドpop()それ。これは、これまでの私のコードです:C++の一連の整数へのポインタを使用
#include <iostream>
using namespace std;
class LinkList {
int *values; //pointer to integers stored in linklist
int number; // number of values stored in linklist
public:
LinkList(const int*, int); // Constructor (method declaration)
int pop(); // typically remove item from data structure (method declaration)
};
LinkList::LinkList(const int *v, int n){
number = n;
*values = *v;
int mypointer = 1;
while (mypointer<n) {
*(values+mypointer) = *(v+mypointer);
mypointer++;
}
}
int LinkList::pop() {
if (number>0) {
int returnme = *values; //get the first integer in the linklist
number--;
values++; //move values to next address
return returnme;
}
else {return -1;}
}
int main() {
int test[] = {1,2,3,4,5};
LinkList l1(test,5);
cout << l1.pop() << endl;
LinkList l2(test,5);
cout << l2.pop() << endl;
return 0;
}
問題は、私がメインメソッドから4番目と5番目の行を削除した場合、そのは*値= * Vラインに失敗し、私はもはやこの問題を得ることはありませんので、そのメモリ管理の事に行く。
私がやりたいことの値は内の整数でメモリの連続ビットを指すように取得することです。私は(これのために配列を使用しようとしたが、ちょうどポップで返さランダムメモリアドレスを取得しておくいる)
背景私はJavaでプログラミングしていますが、私は2ヶ月間C/C++しか使っていませんでした。私はEclipse IDEをubuntuで使っていますが、デバッガの基本的な使い方はできますが、彼らが私の画面に合っていなければ、何かできない。
C++コースからのエクササイズ – Heidi