У меня есть некоторые проблемы с отображением данных из нескольких указателей.Проблемы с указателями
int main()
{
char *arr = new char();
for (int t = 0;t < 10;t++)
{
int size = Generator::GetInstance()->Generate(arr);
for (int generateChars = 0;generateChars < size;generateChars++)
{
std::cout << &arr[generateChars] << " ";
}
std::cout << std::endl;
}
return 0;
}
и класс Генератор
int Generator::Generate(char *ar)
{
srand(time(NULL));
int size = (rand() % 10)+1;
arr = new char[size];
for (int t = 0;t < size;t++)
{
int path = rand() % 4;
switch (path)
{
case 0:
arr[t] = 'U';
break;
case 1:
arr[t] = 'R';
break;
case 2:
arr[t] = 'D';
break;
case 3:
arr[t] = 'L';
break;
}
}
arr[size] = '\0';
*ar = *arr;
return size;
}
Что я делаю неправильно это время и почему это отображение нежелательные данные каждый раз, когда я пытаюсь что-то. Извините, если это то, на что ответили раньше.
Вы случайно пришли из фона Java? – Maxpm
Вы выделяете 'arr' в main, а затем снова в' Generate', это вызовет проблемы. –
Функция «Генерировать» отвечает за выделение памяти. Поэтому нет необходимости делать это в 'main':' char * arr = new char(); 'Кроме того, ваша функция' Generate' не может абсолютно ничего с этим указателем, чтобы изменить его, поскольку вы передали указатель по значению. – PaulMcKenzie