A few questions about cudnnAlgorithmPerformance_t

I am kind of confused about the struct and some funcs surrounding it. I pulled the code from the header file. Following the func will be the question:

cudnnCreateAlgorithmPerformance(cudnnAlgorithmPerformance_t* algoPerf, int numberToCreate );

Is algoPerf suppored to be a pointer to an array?

                                cudnnAlgorithmPerformance_t algoPerf,
                                cudnnAlgorithmDescriptor_t algoDesc,
                                cudnnStatus_t status,
                                float time,
                                size_t memory );

This isn’t even in the documentation is the user supposed to use it, and if it needs to be set we should just set the vars to zero?

                                cudnnAlgorithmPerformance_t* algoPerf,
                                int numberToDestroy);

This one makes it even more confusing. I would say that algoPerf is an array, but the documentation lists it as below.

cudnnDestroyAlgorithmPerformance(cudnnAlgorithmPerformance_t algoPerf);

Thanks in advance