В чем разница между этими массивами? - C (СИ)
Формулировка задачи:
const char *names[] = {"Ivanov", "Petrov", "Sidorov"}; const char **names = {"Ivanov", "Petrov", "Sidorov"};
Что означают warning-и?
main.c:66:5: warning: initialization from incompatible pointer type [enabled by
default]
const char **names2 = {"Ivanov", "Petrov", "Sidorov"};
^
main.c:66:5: warning: (near initialization for 'names2') [enabled by default]
main.c:66:5: warning: excess elements in scalar initializer [enabled by default]
main.c:66:5: warning: (near initialization for 'names2') [enabled by default]
main.c:66:5: warning: excess elements in scalar initializer [enabled by default]
main.c:66:5: warning: (near initialization for 'names2') [enabled by default]
Решение задачи: «В чем разница между этими массивами?»
textual
Листинг программы
*names2 = malloc(20); *names2 = "Ivanov";
Объяснение кода листинга программы
В представленном коде выполняются следующие действия:
- *names2 = malloc(20); - выделяется память под массив строк на 20 элементов.
- *names2 =
Ivanov
; - массив строк заполняется значениемIvanov
. Список действий в коде: - Выделение памяти под массив строк на 20 элементов.
- Заполнение массива строк значением
Ivanov
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д