Red de conocimientos turísticos - Información de alquiler - Un increíble problema de programación en Visual Studio 2010.

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