ここで、新しい C の質問をします。char 配列の配列があり、1 回の呼び出しでファイルに書き込めるようにメモリ内に連続してメモリを予約したいと考えています。
わかりました、それは私が持っているものです:
#define PACKET_SIZE 40960
#define BUFFER_SIZE 3950
#define N_BUFFERS 4
typedef struct buffer{
int lock;
char (*rxbuf)[BUFFER_SIZE][PACKET_SIZE];
}buffer;
/* Buffer list */
buffer bufferlist[N_BUFFER];
[...]
/* I use this to init structs */
void initializeData() {
for (int i = 0; i < N_BUFFER; i++) {
bufferlist[i].lock = 0;
bufferlist[i].rxbuf = malloc(sizeof(???)); /* ??? <- I don't know what to put here */
}
}
/* After I insert data */
for (int ibuffer = 0; ibuffer < N_BUFFER; ibuffer++) {
for (int idata = 0; idata < BUFFER_SIZE; idata++) {
/* Here I want to pass char array[PACKET_SIZE] */
int bytes_received = insertData(bufferlist[ibuffer].rxbuf[idata], sizeof(bufferlist[ibuffer].rxbuf[idata]));
[...]
}
}
[...]
/* Then write with this */
fwrite(bufferlist[i].rxbuf, sizeof(????), 1, outfile);
このコードを教えてください。
前もって感謝します