Puntatori ed array

di il
2 risposte

Puntatori ed array

Salve, sto svolgendo un esercizio sui costruttori di copia, ma sono incappato in un errore, questo è il codice:
//============================================================================
// Name        : costruttoreDiCopie.cpp
// Author      : 
// Version     :
// Copyright   : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================

#include <iostream>
using namespace std;

class Array{
	int *p;
	int size;
public:
	Array(int sz){
		p=new int(sz);
	size=sz;
	}
	~Array(){delete [] p;}
	Array(const Array&a);
	void set(int i, int j){
		if(i>0&&i<size)
			p[i]=j;
	}
	int get(int i){
		return p[i];
	}
};


Array::Array(const Array &a){
	p=new int[a.size];
	for (int i=0;i<a.size;i++)
		p[i]=a.p[i];

}


int main() {
Array v(10);
v.set(0,1);
v.set(1,2);
v.set(2,3);

	return 0;
}
fin qui tutto ok, ma se aggiungo ad esempio: v.set(3,4);

il mio ide mi da errore dicendomi che il programma ha smesso di funzionare,non posso istanziare + di tre oggetti di tipo Array, come mai?

2 Risposte

  • Re: Puntatori ed array

    Osserva bene:

    che differenza c'e tra
    int *p =  new int(10);
    e
    int *p =  new int[10];
    ?

    E scoprirari l'arcano
  • Re: Puntatori ed array

    Ops, ma effettivamete come ho fatto io cosa accade?
Devi accedere o registrarti per scrivere nel forum
2 risposte