Я пытаюсь создать массив, содержащий ряд символов, которые я хочу построить на лету, символы такие, как \x01
, \x02
и так далее.
Например, допустим, у нас есть:
#define NUMCOLORS 3
char delim[NUMCOLORS];
И мы хотим иметь в delim
значения \x01, \x02, \x03
.
Я подумал о двух возможных способах сделать это, но оба вызывают segfault:
for (int i = 0; i < NUMCOLORS; i++){
char *h = "\x01";
sprintf(h, "\x0%d", i+1);
strcpy(delim[i], h);
}
// Other way
for (int i = 0; i < NUMCOLORS; i++){
char *h = "\x0";
strcpy(delim[i], h+1);
}
Есть ли способ создать char
, который мне нужен?
sprintf
войти вh
, потому что он указывает на раздел памяти, доступный только для чтения. Вы не можетеstrcpy
вdelim[i]
, потому что это указательchar
, а неchar
!!! - person barak manos   schedule 24.07.2014