我正在从一个数组的基本定义的数组头创建任何类型的数组与这个头,所以我创建了一个具有函数和构造函数的数组类。 这是我到目前为止的代码:使用指针创建数组
#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