Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在缓冲区数组中填充元素-C_C_Arrays_Buffer - Fatal编程技术网

在缓冲区数组中填充元素-C

在缓冲区数组中填充元素-C,c,arrays,buffer,C,Arrays,Buffer,我需要一个缓冲区数组,如下所示: 阵列有1000个缓冲区, 每个缓冲区有3000字节 然后我需要遍历每个缓冲区,用3000字节填充它, 然后我应该能够访问每个元素 但是我不知道怎么做。有什么帮助吗 我被困在这里: #include <malloc.h> #include <stdio.h> #define BUFFER_LENGTH 5000 #define numberOfBuffers 1000 int main(void) { typedef unsig

我需要一个缓冲区数组,如下所示: 阵列有1000个缓冲区, 每个缓冲区有3000字节

然后我需要遍历每个缓冲区,用3000字节填充它, 然后我应该能够访问每个元素

但是我不知道怎么做。有什么帮助吗

我被困在这里:

#include <malloc.h>
#include <stdio.h>

#define BUFFER_LENGTH 5000
#define numberOfBuffers 1000

int main(void)
{
    typedef unsigned char byte;
    unsigned int i;
    byte** prom;

    prom = (byte*) calloc(numberOfBuffers, sizeof(byte));

    for (i = 0; i < numberOfBuffers; i++)
        prom[i] = (byte**) calloc(BUFFER_LENGTH, sizeof(byte*));

    return 0;
}
#包括
#包括
#定义缓冲区长度5000
#定义numberOfBuffers 1000
内部主(空)
{
typedef无符号字符字节;
无符号整数i;
字节**prom;
prom=(字节*)calloc(numberOfBuffers,sizeof(字节));
对于(i=0;i
这将分配您的缓冲区:

int i;
unsigned char *b[1000];
for(i=0;i<1000;i++)  b[i] = calloc(sizeof(unsigned char),3000);
inti;
无符号字符*b[1000];

对于(i=0;i)请特别注意“请为我编写代码”之类的问题被认为是离题的。请展示您尝试过的内容。例如,尽可能多地制作a,以证明您自己确实付出了一些努力。您是否已经尝试过一些东西,或者您只是希望我们提供免费代码?尝试使用
进行
循环和
malloc
@Pablo:您确定它看起来合适吗?fir的大小st分配在我看来有点小。@Pablo:好的-请允许我评论一下,在大多数系统中,一个
无符号字符
(又称
字节
)大小不足以容纳一个
无符号字符*
——对于32位系统为4倍,对于64位系统为8倍。因此,第一次分配的内存远远少于所需的内存。这很有趣,因为第二次分配分配的空间太多,占用的系数相同。请注意,标准头
声明
calloc()
和朋友们。非标准的头文件
也可以这样做,但它没有那么便携。它(
)定义了一些额外的功能,但是你的代码没有使用它们。谢谢Jonathan,让我试试,然后我会通知你代码是否使用
gcc-Wall
?查看calloc()我怀疑。它应该是
calloc(1300)
,一个3000大小的元素。太复杂了。为什么不使用2D数组呢?