У меня есть основной вопрос о массиве и указателе в C/C++.массив указателей как параметр функции
Скажем, у меня есть:
Foo* fooPtrArray[4];
Как передать fooPtrArray
в функцию? Я пробовал:
int getResult(Foo** fooPtrArray){} // failed
int getResult(Foo* fooPtrArray[]){} // failed
Как я могу иметь дело с массивом указателей?
EDIT: Я когда-то думал, что сообща ошибка от проезжающего неправильного массива указателей, но из всех ответов, я понимаю, что это что-то другое ... (назначение указателя)
Error msg:
Description Resource Path Location Type incompatible types in assignment of
`Foo**' to `Foo*[4]' tryPointers.cpp tryPointers line 21 C/C++ Problem
Я надеваю «Не понимаю, почему он говорит: Foo * * to Foo * [4]. Если в качестве параметра функции они меняются друг с другом, почему во время назначения это дает мне ошибку компиляции?
Я пытался дублировать Сообщ ошибки с минимальным кодом следующим образом:
#include <iostream>
using namespace std;
struct Foo
{
int id;
};
void getResult(Foo** fooPtrArray)
{
cout << "I am in getResult" << endl;
Foo* fooPtrArray1[4];
fooPtrArray1 = fooPtrArray;
}
int main()
{
Foo* fooPtrArray[4];
getResult(fooPtrArray);
}
Определить «не удалось». Ошибка при компиляции? во время выполнения? как, точно (или смутно, я не против)? –
Прилагаю мой код подстрижен, как указано выше, это ошибка времени компиляции. Ошибка возникает из функции void getResult (Foo * * fooPtrArray) – Lily