LINUX.ORG.RU

История изменений

Исправление beastie, (текущая версия) :

Просто вижу впервые)

На самом деле очень распространенный подход, конформный со строками заканчивающимися на '\0'. Да и проще гораздо. Сам сравни:

size_t nelem = sizeof(colortable) / sizeof(colortable[0]);
int i;

for (i = 0; i < nelem; i++) {
        puts(colortable[i].name);
}
struct ColorTable *cp;

for (cp = colortable; cp->name != NULL; cp++) {
        puts(cp->name);
}

При этом, как уже сказали выше, первый подход работает только со «статическими» массивами, а второй как со «статикой», так и с «динамикой» (malloc).

Исправление beastie, :

Просто вижу впервые)

На самом деле очень распространенный подход, конформный со строками заканчивающимися на '\0'. Да и проще гораздо. Сам сравни:

size_t nelem = sizeof(colortable) / sizeof(colortable[0]);
struct ColorTable *cp;
int i;

for (i = 0; i < nelem; i++) {
        puts(colortable[i].name);
}
struct ColorTable *cp;

for (cp = colortable; cp->name != NULL; cp++) {
        puts(cp->name);
}

При этом, как уже сказали выше, первый подход работает только со «статическими» массивами, а второй как со «статикой», так и с «динамикой» (malloc).

Исправление beastie, :

Просто вижу впервые)

На самом деле очень распространенный подход, конформный со строками заканчивающимися на '\0'. Да и проще гораздо. Сам сравни:

size_t nelem = sizeof(colortable) / sizeof(colortable[0]);
struct ColorTable *cp;
int i;

for (i = 0; i < nelem; i++) {
        puts(colortable[i].name);
}
struct ColorTable *cp;

for (cp = colortable; cp->name != NULL; cp++) {
        puts(cp->name);
}

Исходная версия beastie, :

Просто вижу впервые)

На самом деле очень распространенный подход, конформный со строками заканчивающимися на '\0'. Да и проще гораздо. Сам сравни:

size_t nelem = sizeof(colortable) / sizeof(colortable[0]);
struct ColorTable *cp;
for (i = 0; i < nelem; i++) {
        puts(colortable[i].name);
}
struct ColorTable *cp;
for (cp = colortable; cp->name != NULL; cp++) {
        puts(cp->name);
}