В чем разница между этими массивами? - 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";

Объяснение кода листинга программы

В представленном коде выполняются следующие действия:

  1. *names2 = malloc(20); - выделяется память под массив строк на 20 элементов.
  2. *names2 = Ivanov; - массив строк заполняется значением Ivanov. Список действий в коде:
  3. Выделение памяти под массив строк на 20 элементов.
  4. Заполнение массива строк значением Ivanov.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.667 из 5
Похожие ответы