У меня есть массив структур, которые я пытаюсь сместить влево на 1 узел массива.Общий размер массива огромен (около 3 гигабайт), поэтому, хотя я знаю точный размер нужного мне массива, он слишком велик для объявления в стеке (даже если у меня 16 гигабайт оперативной памяти, и я пишу 64-битныйпрограмма), что усложняет задачу, заставляя меня динамически распределять память:
struct s_ptx
{
short streamIndex;
double raw;
char rawDx;
} *Ptx[100];
void allocateMemory(void)
{
ptxTotal = 300;
for (int i = 0; i < 100; ++i)
Ptx[i] = (struct s_ptx*) calloc( ptxTotal, sizeof(struct s_ptx));
}
void shiftDataStructures(void)
{
for (int j = 100 - 1; j > 0; --j)
Ptx[j] = Ptx[j - 1];
}
Но я получаю неправильные результаты, потому что функция shiftDataStructures не работает.Любые идеи о том, как мне нужно переписать это.