Как определить массив указателей на массив указателей в C? - PullRequest
1 голос
/ 09 октября 2019

Допустим, у меня есть следующие массивы указателей:

const char* m1[5] = { "bla", "asdada", "sadasde", "wrskm", "adjsad" };
const char* m2[5] = { "xxx", "yyy", "zzz", "uuu", "vvv" };
const char* m3[5] = { "lkkl", "kkk", "lkkl", "skl", "jkljkl" };
const char *m4[5] = { "one", "two", "three", "four", "five" };

Я просто хочу представить данные выше в одном массиве, где каждый элемент представляет один из массивов выше. как массив массивов указателей на структуру cons-символов (исправьте меня, пожалуйста, если это неверно) Я пытаюсь сделать следующее, но это не работает

char *(const char* exm[5])[4] = { &m1, &m2, &m3, &m4};

Справка?

1 Ответ

2 голосов
/ 09 октября 2019

Помните, что массивы естественным образом распадаются на указатели на их первый элемент. Для массива указателей это становится указателем на указатель, то есть const char ** для ваших массивов m1 до m4.

Поэтому вам нужен массив указателей на указатели:

const char **exm[] = { m1, m2, m3, m4 };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...