struct { char a[10]; char b[5]; char c[10]; } info;
Как объединить все элементы данных struct в один массив?
struct
С memcpy():
memcpy()
// Assign a buffer big enough to hold everything char *buf = malloc(sizeof(info.a) + sizeof(info.b) + sizeof(info.c)); // Get a pointer to the beginning of the buffer char *p = buf; // Copy sizeof(info.a) bytes of stuff from info.a to p memcpy(p, info.a, sizeof(info.a)); // Advance p to point immediately after the copy of info.a p += sizeof(info.a); // And so on... memcpy(p, info.b, sizeof(info.b)); p += sizeof(info.b); memcpy(p, info.c, sizeof(info.c));
Вы можете использовать sprintf. Эта функция "печатает" строку в anoter:
int struct_size = sizeof(info); char *result = (char*)malloc(sizeof(char)*struct_size); sprintf(result, "%s%s%s", info.a, info.b, info.c);