Я ожидаю, что сработает следующее:
static const char * const FOO = "foo"; /* generated */
char bar[12], *pBar = strcpy(bar, FOO); /* my code */
, и тогда вы сможете получить к нему доступ через bar[]
или через pBar
.
Существует избыточность дополнительного char *
но, возможно, это не имеет значения.
Вы можете даже рассмотреть что-то вроде следующего, чтобы защититься от переполнения буфера:
static const char * const FOO = "foo"; /* generated */
char bar[12] = {0}, *pBar = strncpy(bar, FOO, sizeof(bar)/sizeof(bar[0]) - 1); /* my code */
Вы также можете рассмотреть обертывание этого в #define
как:
#define MAKEARRAY(name, size, thing) char name[size] = {0}, *p##name = strncpy(name, (thing), (size) - 1)
, а затем использовать его как:
MAKEARRAY(bar2, 14, FOO);