C ++ char * указатель на функцию и удаление - PullRequest
4 голосов
/ 01 июля 2010

У меня есть следующий код:

#include <iostream>
using namespace std;

void func(char * aString)
{
    char * tmpStr= new char[100];
    cin.getline(tmpStr,100);
    delete [] aString;
    aString = tmpStr;
}

int main()
{
    char * str= new char[100];
    cin.getline(str,100);
    cout<< str <<endl;
    func(str);
    cout<< str <<endl;
    return 0;
}

Почему второй cout не печатает вторую строку ввода?Как я могу изменить этот код, чтобы он работал?

Ответы [ 11 ]

0 голосов
/ 01 июля 2010

присваивание параметру aString внутри функции не влияет на str в main ()

вы можете попробовать

    return aString 

и в основном

    str = funct(str);

Но на самом деле, вероятно, нет причин передавать str в функцию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...