plist
という配列にデータを保存したいとします。これらの配列はサイズが異なり、ParticleList
という構造体の一部です。私はサイズn[0]
の1つのリストを作成する方法を知っています。 n[0]
のサイズは2です。従って、サイズ2のリストです。サイズParticleList
のサイズn[0], n[1], n[2]
のリストをいくつか作成したいのですが、どうすればいいですか? - > 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);
}
私はサイズのリストを作成する方法を知っています[0] '_...何? –
ここにある 'sendPar'関数はメモリをリークしています。それ以外はあなたの質問がはっきりしていないので、少し詳しく説明してください。 –
@SouravGhosh '//リストの数int nl = 3; //リストのサイズint n [nl]; n [0] = 2; n [1] = 3; n [2] = 4 'となる。したがって、私は、サイズ2のリストを作成する方法を知りたいと思っていました。したがって、サイズ2のリストです。 – Samuel