В C
вы можете скопировать память из одной области в другую, используя memcpy()
.Прототип для memcpy()
:
void *memcpy(void *dst, const void *src, size_t n);
, и описание таково, что он копирует n
байтов из src
в dst
и возвращает dst
.
, чтобы скопировать 300 байтов из b
в a
, где и a
, и b
указывают на что-то полезное, b
содержит не менее 300 байтов данных, а a
указывает не менее 300 байтов пространстваВы можете написать, вы должны сделать:
memcpy(a, b, 300);
Теперь ваша задача должна быть примерно такой:
typedef struct chunk
{
char data[300];
} CHUNK;
char *buffer;
CHUNK c[100];
size_t i;
/* make buffer point to useful data, and then: */
for (i=0; i < 300; ++i)
memcpy(c[i].data, buffer+i*300, 300);