- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
long* Service::qByteToLongArray(QByteArray qba, long r)
{
long* larr = new long[r];
char *carr;
carr = (char*)larr;
int len = r * sizeof(long);//length in bytes
for(int i=0; i < len; i++)
carr[i] = qba.at(i);
return larr;
}
QByteArray Service::longToQByteArray(long **larr2, long r, long c)
{
QByteArray qba;// = new QByteArray();
char **carr2;
carr2 = (char**)larr2;
int rlen = c * sizeof(long);//length of row in bytes
for(int i=0; i < r; i++){
qba.append(carr2[i], rlen);//add next row of matrix to the QByteArray
}
return qba;
}
Konardo 25.02.2014 16:48 # −7
И минус.
absolut 25.02.2014 16:57 # −1
defecate-plusplus 25.02.2014 16:59 # −1
Abbath 25.02.2014 17:18 # −1
bormand 25.02.2014 17:42 # 0
Abbath 25.02.2014 17:47 # 0
TarasB 25.02.2014 18:56 # +3
bormand 25.02.2014 19:16 # 0
TarasB 25.02.2014 19:29 # 0
Только ifdef, ну без этого в нативных языках никуда.
TarasB 25.02.2014 17:14 # +4
inkanus-gray 25.02.2014 20:02 # +2
TarasB 25.02.2014 20:06 # 0
конардо не считаем
то есть таки ещё есть два школохацкера, считающих, что "им не нужны памперсы" (с)
bormand 25.02.2014 20:09 # +3
Причем в Qt сериализация и загрузка вектора выглядят так: И не надо там никаких циклов, преобразований и new :)
TarasB 25.02.2014 20:33 # +2
И это тоже. Было бы очень умно завести внутри умный указаталь а вернуть сырой.
И ведь с вероятностью 90% он будет показывать на нужные данные, если ты не выделишь память в другой функции.
Xom94ok 25.02.2014 20:12 # +2
Я сначала подумал, что ты про значащую третью, фактически пятую
bormand 25.02.2014 20:13 # +1
Еще как бросает... Там гарантируется только то, что память не потечет при выбросе исключения конструктором одного из элементов массива. И что при этом вызовутся деструкторы у всех предыдущих элементов.
Да и само по себе оно может кинуть, если памяти мало.