2017-06-23 4 views
0

J'ai besoin d'un tableau de tampons comme suit: le tableau a 1000 tampons, chaque tampon a 3000 octets.Remplissage des éléments dans un tableau de tampons - C

Ensuite, je dois parcourir chaque tampon pour le remplir avec 3000 octets, alors je devrais être en mesure d'accéder à chaque élément.

Mais je n'ai aucune idée de comment le faire. De l'aide?

Je suis coincé ici:

#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; 
} 
+2

Veuillez prendre le [tour], en particulier [demander]. Des questions comme "S'il vous plaît écrire le code pour moi." sont considérés hors sujet. S'il vous plaît montrer ce que vous avez essayé. C'est à dire. faites autant que possible pour démontrer que vous avez fait des efforts vous-même. – Yunnosch

+2

Avez-vous déjà essayé quelque chose ou attendez-vous simplement du code gratuit de notre part? Essayez d'utiliser les boucles 'for' et' malloc'. – Pablo

+0

@Pablo Shiver. Malloc et quelqu'un qui a besoin de recommandation pour utiliser une boucle for pour cela. Le réseau statique 2D semble plus sûr, il est vrai que 3Mo en un seul morceau. – Yunnosch

Répondre

0

Cela affectera vos tampons:

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

Vous pouvez accéder, par exemple, le 10 octet du 5ème élément de b [4] [9 ]

+0

merci Jonathan, laissez-moi essayer, alors je vais vous informer – Howard

+2

Est-ce que le code compiler sans avertissement avec 'gcc -Wall'? En regardant le calloc() j'en doute. – Yunnosch

+2

il devrait être 'calloc (1, 3000)', un élément de la taille 3000. – Pablo