динамическая память в методах класса - PullRequest
0 голосов
/ 29 октября 2019

Метод должен вставлять массив символов (Aexample) в другой массив символов (stringo), который является членом данных. Я создаю некоторую динамическую память, чтобы вставить туда длину 2 массива, но вот проблема - как вернуть работу динамической памяти (в методе класса) и удалить ее? Я не могу удалить динамическую память, не вернув ее в результате

char *Stringfuncs::insertnString(char *Aexample, int Achislo) 
{
char *anotherptr;
char *ptrarray = new char[strlen(stringo) + strlen(Aexample)];   //stringo is a data member of a class

for (int i = 0, j = 0, g = 0; g<(strlen(stringo) + strlen(Aexample)); i++, g++)
{

    if (i == Achislo)
    {

        while (j < strlen(Aexample))
        {

            ptrarray[i] = Aexample[j];

            j++;
            i++;
            g++;
        }

        i -= strlen(Aexample);

    }

    ptrarray[g] = stringo[i];

}


delete[] ptrarray;    //The problem starts from here.

 //

 //I can't write the return statement because ptrarray is already deleted.
}
...