Мой профессор в настоящее время преподаёт тему динамического распределения памяти вместе с указателями. Я не совсем понимаю, следующий пример:Динамическое распределение памяти со строками
#include <iostream>
#include <cstring>
#include <cstdlib>
using namespace std;
int main(void)
{
int i;
char * names[7]; // declare array of pointers to char
char temp[16];
// read in 7 names and dynamically allocate storage for each
for (i = 0; i < 7; i++)
{
cout << "Enter a name => ";
cin >> temp;
names[i] = new char[strlen(temp) + 1];
// copy the name to the newly allocated address
strcpy(names[i],temp);
}
// print out the names
for (i = 0; i < 7; i ++) cout << names[i] << endl;
// return the allocated memory for each name
for (i = 0; i < 7; i++) delete [] names[i];
return 0;
}
Для линии, которая печатает имена, я не понимаю, как «имена [I]» печатает имена. Не следует ли «имена [i]» распечатывать указатели? Любая помощь по этому поводу очень ценится.
Не используйте 'std :: endl', если вам не нужен дополнительный материал, который он делает. '' \ n'' запускает новую строку. –