c - C编程中的缓冲区数组?

标签 c arrays buffer

我正在尝试创建一个缓冲区数组。我需要在每个缓冲区中存储一个整数。我不太清楚应该怎么做。

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/

相关文章:

c# - 有什么理由 GZipStream.Read 会返回少于请求的字节数吗?

io - Rust 的标准库是否支持直接 IO 文件访问?

c - 函数指针变量

c - Socket C 同时处理 recv() 和 send()

Java 扩展将位图(图像)作为字节数组返回为字符串,我需要在我的游戏中显示图像。如何?

python - 使用没有 NUMPY 的随机数创建二维数组 (Python)

在 C 中创建 n 项的所有可能的 k 和 m 组合子集

c - C 中的运算符重载

iphone - 使用 for 循环从位于数组中的字符串中选择随机图像

读取行缓冲流可以产生多行吗?