Я редактирую фрагмент кода, который является частью большого проекта, который использует «const» для инициализации группы массивов.
Поскольку я хочу параметризовать эти константы, я должен адаптировать код для использования «malloc» для выделения памяти.
К сожалению, существует проблема со структурами: я не могу выделить динамическую память в самой структуре. Выполнение этого снаружи может привести к значительным изменениям исходного кода.
Вот небольшой пример:
int globalx,globaly;
struct bigStruct{
struct subStruct{
double info1;
double info2;
bool valid;
};
double data;
//subStruct bar[globalx][globaly];
subStruct ** bar=(subStruct**)malloc(globalx*sizeof(subStruct*));
for(int i=0;i<globalx;i++)
bar[i]=(*subStruct)malloc(globaly*sizeof(subStruct));
};
int main(){
globalx=2;
globaly=3;
bigStruct foo;
for(int i=0;i<globalx;i++)
for(int j=0;j<globaly;j++){
foo.bar[i][j].info1=i+j;
foo.bar[i][j].info2=i*j;
foo.bar[i][j].valid=(i==j);
}
return 0;
}
Примечание: в программном коде, который я редактирую, globalx и globaly были const в указанном пространстве имен. Теперь я удалил «const», чтобы они могли действовать как параметры, которые устанавливаются ровно один раз.
Подведены итоги: как правильно распределить память для подструктуры внутри структуры?
Большое спасибо!
Max