我想將數據保存在名爲plist
的數組中。這些陣列的大小可能不同,並且是名爲ParticleList
的結構的一部分。我知道如何創建一個大小爲n[0]
的列表。例如n[0]
的大小爲2.因此,大小爲2的列表。但是,如果我想創建多個大小爲n[0], n[1], n[2]
的ParticleList
類型的列表,我該怎麼辦?可變大小的數組結構
爲了削減長話短說:我應該如何修改我的代碼,以訪問可變大小的列表不知何故像pl[numberOfList].plist[PositionInArray] = -1
或`PL [numberOfList] - >的plist [PositionInArray] = -1'
#include <stdlib.h>
#include <stdio.h>
typedef struct{
double *plist;
int plistSize;
} ParticleList;
void sendPar(int *n, int nl){
// Allocate memory for struct ParticleList
ParticleList *pl = malloc(sizeof(ParticleList));
// Allocate memory for list
pl->plist = malloc(sizeof(double)*n[0]);
// Fill list with data
for(int k=0; k<n[0]; k++){
pl->plist[k] = -1;
}
// Write size of list into file
pl->plistSize = n[0];
// Print data
printf("Content of list:\n");
for(int k=0; k<n[0]; k++){
printf("%lf\n", pl->plist[k]);
}
printf("Size of list: %d\n", pl->plistSize);
// Free memory
free(pl);
}
int main(){
// Number of lists
int nl = 3;
// Size of lists
int n[nl];
n[0] = 2;
n[1] = 3;
n[2] = 4;
sendPar(n, nl);
}
_I知道如何創建一個大小爲'n [0]的列表'_...什麼? –
這裏的'sendPar'函數泄漏內存。除此之外,你的問題還不清楚,你應該詳細說明一下。 –
@SouravGhosh'//列表的數量int nl = 3; //列表的大小int n [nl]; n [0] = 2; n [1] = 3; N [2] = 4'。因此,我想說,我知道如何創建一個大小爲[n]的列表,它等於2.因此,列表大小爲2. – Samuel