Un increíble problema de programación en Visual Studio 2010.
No conozco el código de su función principal, pero a juzgar por el constructor Polinomio, el coe creado tiene solo un espacio de almacenamiento doble y, además,
polinomio vacío: : add(const Polynomial& is)
{
Polynomial temp;//Aquí, la construcción predeterminada, sizeCoe es 1
temp.numCoe=numCoe>is .numCoe?numCoe:is.numCoe;
temp.sizeCoe=2*temp.numCoe;
for(int i=0;i temp.coe[i]=0;// De hecho, también hay un problema aquí. En realidad, solo hay 1 tamaño de datos. Acaba de modificar sizeCoe y no expandió la memoria asignada. temp. copyFrom(is);// Aunque aumentó el tamaño de Coe, no reasignó la memoria. La memoria a la que apunta actualmente coe sigue siendo la unidad asignada originalmente. Si tiene demasiados datos, se desbordará. /p> temp.numCoe=numCoe>is.numCoe?numCoe:is.numCoe; for(int i=0;i temp.coe [i]+=coe[i]; } //*this=temp; numCoe=temp.numCoe; sizeCoe=temp.sizeCoe; for(int i=0;i coe[i]=temp.coe [i]; return; } se llama a temp.copyFrom En este momento, el coeficiente de temperatura solo tiene un doble, pero es necesario. : Polinomio vacío::copyFrom(const Polinomio& is) { for(int i=0;i coe[ i]=is.coe[i]; numCoe=is.numCoe; } Copiar todos los elementos of is....Memoria fuera de límites Ejemplos típicos