我正在尝试创建一个缓冲区数组。我需要在每个缓冲区中存储一个整数。我不太清楚应该怎么做。
int BUFFER_LENGTH = 50; //the size of each buffer
int numberOfBuffers = 10; //number of buffers
int *pBuffers; //array of buffers
pBuffers = (int *) calloc (numberOfBuffers, sizeof(int)); //make array size of numberOfBuffers
int i;
for (i = 0; i < n; i++){ //initialize each buffer to zero.
&pBuffers[i] = 0x00;
}
我做错了什么?这段代码并没有真正起作用。
最佳答案
您可能需要分配足够的空间。在那里你只分配了足够的空间给 10 个整数;看起来你想分配足够的 500。简单的方法是 int buffers[10][50]
。但是如果你想调用 calloc,你必须 calloc(BUFFER_LENGTH, sizeof(int))
numberOfBuffers
次。
此外,calloc 会自动清除分配的内存,因此无需这样做。
#define BUFFER_LENGTH 50 /* the size of each buffer */
#define BUFFERS 10 /* number of buffers */
int **pBuffers; /* array of buffers */
pBuffers = calloc (BUFFERS, sizeof(int *)); //make array of arrays
int i;
for (i = 0; i < BUFFERS; i++) {
pBuffers[i] = calloc(BUFFER_LENGTH, sizeof(int)); // make actual arrays
}
关于c - C编程中的缓冲区数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1658408/