Возвращение массива из функции
От: LA Jazz Россия  
Дата: 25.07.02 12:37
Оценка:
typedef struct
{
int e1;
int e2;
} sA;


Как лучше осуществить возвращение массива структур sA из ф-ии:

1.
void f(sA* pSA, int* count)
{
  int nmbSA = 4;
  ...
  sA *pRes = new sA[nmbSA];
  ... // do something with array
  pSA = pRes;
  *count = nmbSA;
}

main()
{
  int nmbSA = 0;
  sA *pSA = 0;
  f(pSA, &nmbSA);
  if(pSA)
    delete pSA;
}



2.
void f(sA* pSA, int count)
{
  int nmbSA = 4;
  ...
  sA *pRes = new sA[nmbSA];
  ... // do something with array
  memcpy(pSA, pRes, sizeof(sA)*(__min(nmbSA, count))
  delete pRes;
}

main()
{
  int nmbSA = 4;
  sA *pSA = new sA[nmbSA];
  f(pSA, nmbSA);
  delete pSA;
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.