我正在從一個數組的基本定義的數組頭創建任何類型的數組與這個頭,所以我創建了一個具有函數和構造函數的數組類。 這是我到目前爲止的代碼:使用指針創建數組
#include <iostream>
#define newline "\n"
class Arr
{
public:
typedef float T;
public:
Arr(int size);
Arr(int size, T fill);
T get(unsigned index) const;
void set(unsigned index, T newvalue);
unsigned Size() const;
unsigned SIZE;
void Print();
private:
};
Arr::Arr(int size,T fill)
{
SIZE = size;
T *pointer;
for (int i = 0; i < size; i++)
{
*pointer = fill;
pointer++;
}
}
void Arr::set(unsigned index, T newvalue)
{
T *pointer;
pointer = 0;
for (unsigned i = 0; i < index; i++)
{
pointer++;
}
*pointer = newvalue;
}
void Arr::Print()
{
T *pointer;
pointer = 0;
for (unsigned i = 0; i < SIZE; i++)
{
std::cout << *pointer << newline;
pointer++;
}
}
我知道,我的指針指向任何東西,因爲我的問題是我的指針應指向如何正確地作出此代碼的工作? 任何時候我調試它後崩潰! 謝謝...!
您的代碼太錯誤了。 [讀一本書](http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list)。如果您對本書試圖教授的內容有疑問,您可以在這裏問問他們。一旦你對圖書資料相當有信心,你的代碼應該不會錯。 –
你還沒有在'T *指針;'在Arr構造函數中分配內存T.此外,即使你做了,你也沒有跟蹤它的任何地方,只能在方法範圍內而不是在課堂上。 – Abhinav
可能是一個私人數組,或者你可以廢除整個班級,只需使用std :: vector –
IdeaHat