La fonction est la suivante:Pourquoi cette fonction segfaulting?
Set::Set(Multinumber* tempArray[], int tempSize)
{
numElements = tempSize;
capacity = tempSize*2;
setArray = new Multinumber*[capacity];
for (int i=0; i<numElements; i++)
{
addElement(tempArray[i]);
}
}
La setArray variable est déclarée dans ma tête pour être de type Multinumber **
Il segfaults chaque fois que je l'appelle avec ceci:
Multinumber* carr[2];
carr[0]=c4;
carr[1]=c5;
Set setb(carr,2);
c4 et c5 sont déjà des pointeurs déclarés sur les objets du type correct.
Toute aide serait grandement appréciée.
EDIT: Code ci-dessous est fonction addElement (des excuses pour le retrait)
const Set Set::operator+(const Set& rhs) const
{
Set result;
int i=0, j=0;
while ((i < numElements) && (j < rhs.numElements))
{
Multinumber* toadd=new Multinumber;
toadd=*(setArray[i]) + *(rhs.setArray[j]);
result.addElement(toadd);
i++;
j++;
}
while ((i < numElements))
{
result.addElement(setArray[i]);
i++;
}
while ((j < rhs.numElements))
{
result.addElement(rhs.setArray[j]);
j++;
}
return result;
}
EDIT: Sur la base de nombreuses déclarations de Cout, erreur semble être dans cette fonction:
bool Set::isFull()
{
return (numElements == capacity);
}
EDIT: Indices de tableau modifiés, mais toujours segmentés
Plus de contexte est nécessaire. Un exemple complet et compilable serait superbe. –
Vous n'avez toujours pas fourni le code pour addElement. Les emplacements probables pour les erreurs sont également le constructeur par défaut, le constructeur de la copie et le destructeur pour la classe Set, donc il vaut mieux poster aussi ce code. – wolfgang