Если подпрограмма выделяет новый буфер, как вызывающий объект этой функции передает указатель для получения адреса?Как передать указатель по ссылке в C++
Всякая комбинация объявлений, которую я пробовал, не работает, то есть после вызова подпрограммы переданный указатель не получает установленный адрес буфера, созданного в подпрограмме.
int main()
{
float *fMyBuffer;
// Pointer Update
readFloatData (fMyBuffer); // &fMyBuffer *fMyBuffer
// Deallocate Memory
delete [] fMyBuffer;
}
void readFloatData(float *&fBuffer) //*fBuffer &fBuffer
{
// Create New Buffer
float *fData;
fData = new float [1000];
// Pass our buffer Address to user's pointer
fBuffer = fData;
}
Если ссылка на 'float' является' float * ', то ссылается на' float * '? – SJuan76
@Sjuan Обычно невероятно плохая идея? :-) – Voo
Очень просто: 1) подпись функции: 'void readFloatData (float ** fBuffer) {...}', 2) вызов функции: 'readFloatData (& fMyBuffer);', 3) Удалить все (теперь посторонние) в файле readFloatData() :. – FoggyDay