-1
Я пытаюсь преобразовать 2d массива в двойной указатель, я нашел решение на StackOverflow, но он не работает, если я делаю оттиск это просто тарабарщину ...преобразования из 2d массива двойного указателя
Я должен сделать это, потому что функция, которую я вызываю впоследствии, нуждается в const char **, и я не могу ее изменить.
void test(const char** sl, int n) {
char s[n][20], t[20];
int i, j, a;
for(i = 0; i < n; ++i) {
strcpy(s[i], sl[i]);
}
for (i = 1; i < n; i++) {
for (j = 1; j < n; j++) {
if (strverscmp(s[j - 1], s[j]) > 0) {
strcpy(t, s[j - 1]);
strcpy(s[j - 1], s[j]);
strcpy(s[j], t);
}
}
}
char *solutionPtrs[n];
for (a = 1; a < n; a++)
solutionPtrs[n] = s[n];
char **ptr = solutionPtrs;
printf("\nStrings in order are : ");
for (i = 0; i < n; i++)
printf("\n%s", ptr[i]); <-- just not what it should be.
}
Может кто-нибудь сказать мне, почему он не работает?