Строки: warning: (near initialization for 'someName[0]') - C (СИ)
Формулировка задачи:
Вобщем то был обычный масив строк
Но масив этот большой, а в нём приходится искать определёное слово много раз, поэтому решил поделить этот масив на двухмерный с групировкой по первой букве.
Строк на каждую букву разное количество (если что)
Но вот теперь я схватываю кучу warning'ов
и так по каждому слову. Я понимаю что нужно как-то обьявить масив по другому, но как только не пробовал, ошибки не пропадают. Читал на эту тему stackoverflow но там примеры с интами и пользовательскими структурами, но указатели на char как я понимаю немного запутанее.
const char *someName[] = {
"str1", "str2", "str3", ... "strN"
}const char *someName[] = {
{ // A
"Astr1", "Astr2", "Astr3", ... "AstrN"
},
{ // B
"Bstr1", "Bstr2", "Bstr3", ... "BstrN"
},
....
{ // Z
"Zstr1", "Zstr2", "Zstr3", ... "ZstrN"
},
}warning: braces around scalar initializer warning: (near initialization for 'someName[0]') warning: excess elements in scalar initializer warning: (near initialization for 'someName[0]') warning: excess elements in scalar initializer .........
Решение задачи: «Строки: warning: (near initialization for 'someName[0]')»
textual
Листинг программы
#include <stdio.h>
char* some_words1[] = { "word0", "word1", "word2" };
char* some_words2[] = { "word0", "word1" };
char* some_words3[] = { "word0", "word1", "word2", "word3"};
char **string_matrix[] = {
some_words1, some_words2, some_words3
};
int main() {
printf("%s\n", string_matrix[0][2]);
printf("%s\n", string_matrix[1][1]);
printf("%s\n", string_matrix[2][3]);
return 0;
}
Объяснение кода листинга программы
В данном коде объявлены три массива указателей на строки: some_words1, some_words2 и some_words3, которые содержат соответственно 3, 2 и 4 строки.
Затем эти массивы объединяются в один двумерный массив string_matrix, который содержит три строки, каждая из которых является массивом указателей на строки.
В функции main() происходит печать элементов двумерного массива с помощью функции printf().
Печатаются элементы string_matrix[0][2], string_matrix[1][1] и string_matrix[2][3], что соответствует печати третьей строки первого массива, второй строки второго массива и третьей строки третьего массива.