У меня есть функция, которая должна возвращать указатель на массив:Возвращаясь указатель на массив C++
int * count()
{
static int myInt[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
return &myInt[10];
}
внутри моей главной функции Я хочу, чтобы отобразить один из Интс из этого массива, как здесь индекс 3
int main(int argc, const char * argv[])
{
int myInt2[10] = *count();
std::cout << myInt2[3] << "\n\n";
return 0;
}
это, однако, дает мне ошибку: «массив инициализатор должен быть список инициализатора»
как создать массив в пределах моей основной функции, которая использует указатель, чтобы получить тот же Elemen ts как массив у указателя?
использование вектора или станд :: массив вместо – taocp
Массивы и указатели равнозначны, но не то же самое. См. FAQ по C: http://c-faq.com/aryptr/aryptrequiv.html – kfsone
Чувак, я не имею в виду, что это покровительственно, но этот код испорчен по многим причинам. На самом деле лучше всего читать книгу. Я бы рекомендовал язык программирования C (Kernighan & Ritchie); который имеет лучшее объяснение указателей, с которыми я когда-либо сталкивался, и в равной степени применим к C++ в этом отношении. Вы знаете в конце главы о указателях, почему int myInt [10] = * count() не может делать то, что вы хотите. – Bathsheba