Итак, я получил небольшую часть программы, набранную из учебника.
#include <stdio.h>
#define string char*
int main(void) {
string a[] = { "I", "like", "to", "fight," },
b[] = {"pinch,","and","bite."};
printf("%s %s %s %s %s %s %s\n", a[0], a[1], a[2], a[3], b[0], b[1], b[2]);
return 0;
}
В текущем виде выдает следующие ошибки:
exit status 1
main.c: In function 'main':
main.c:7:18: error: excess elements in char array initializer
b[] = {"pinch,","and","bite."};
main.c:7:18: note: (near initialization for 'b')
main.c:7:24: error: excess elements in char array initializer
b[] = {"pinch,","and","bite."};
main.c:7:24: note: (near initialization for 'b')
Очевидно, что цель состоит в том, чтобы сделать эту работу. Книга намекает на то, что в препроцессоре #define
можно добавить один отдельный символ, чтобы он работал. И с ошибками, сосредоточенными вокруг строки b
, я думал, что это будет b
. Но это не так. Либо это, либо я ставлю b
в неправильном месте. Мое понимание этой проблемы заключается в том, что, хотя она создает достаточно места для строки, она не для строки b
.
Любой вклад будет оценен.