Алексей
Andrii
Ты передаёшь указатель на первый элемент массива из трёх целых int (*)[3]
Andrii
У в функции стоит int * * что есть указатель на указатель на int.
Anonymous
Andrii
И работать с двумерным массивом как с одномерным
Anonymous
Andrii
Andrii
А принимаешь int * *
Вот если бы ты передавал
int main()
{
int sz = sizeof(int) * 3;
int * data[2] = { malloc(sz), malloc(sz) };
f(data);
return 0;
}
Andrii
int data[2][3] это у тебя шесть элементов int идут подряд
Andrii
И ты передаёшь указатель на первый элемент
Владислав
Есть: let textArraу: [String] = ["aa", "fff", "aaa", "bbbb", "333", "5555555"]
Нужно: let textArray: [String] = [ "2", "3", "4", "5"]
Владислав
Как в массиве заменить буквы на цифры?
Vladislav
Vladislav
Владислав
OleH
OleH
Есть функции подсчёта строк, тобишь любой набор символов в кавычках " " это строка.
Потом нужно запомнить каждую букву которая функция считает, и если она была, скип.
Если вместо буквы цифра - вывести эту цифру
OleH
Где я ошибся?
Vladislav
аа, то-есть ему нада колличество символов в строке заменить на их кол-во?
OleH
Хотя погоди, я 333 пропустил
OleH
Другая логика здесь
Vladislav
я ниче не понел
OleH
Аа - 2
Fff - 3
Допустим ааа было уже "а" - скип \n
Bbbb - 4
333 - ... хз
5555555- тоже странно ибо цифру мы уже пропустили
OleH
Значит нужно просто заменить один массив на другой
Anonymous
OleH
я ниче не понел
Вася, а наш язык программирования может в массиве хранить буковы и циферы?
Vladislav
OleH
нет.
Двумерный массив использовать надо
Двумерный.
OleH
Тогда всё влезет
Andrii
char * * ptr Если взять sizeof(ptr[0]) то чему он будет равен?
Vladislav
Andrii
sizeof
Vladislav
Тогда всё влезет
каво? ты же говорил про числа и строки в одном массиве) нет?
OleH
Vladislav
sizeof
ну, наверно в зависимости от разраядности системы?
OleH
Тупанул да
OleH
Баля ещё преобразовать нужно
Andrii
OleH
Он в двумерный массив в одномерный пытается запихать?
Andrii
Просто что будет в памяти? Распиши по байтам. И пусть будет char вместо int для простоты
Andrii
Тогда { {1, 2, 3}, {4, 5, 6} } это в памяти будет шесть байт 0x01, 0x02, 0x03, 0x04, 0x05, 0x06.
OleH
Andrii
А если брать char * x[3] то это три указателя 0x00400008, 0x00400480, 0x00400023
Andrii
Поэтому и проблема, что массив массивов рассматривается как массив указателей, точее указатель на указатель
Vladislav
Vladislav
Anonymous
Адрес одинаковый
Anonymous
Не понимаю эти указатели
Andrii
OleH
Vladislav
Не понимаю эти указатели
https://www.youtube.com/watch?v=MQBV3PMx5sg&list=PLRDzFCPr95fLjzcv6nNdjMu_9RcZgIM9U&index=36
OleH
Мне приходит реклама с канала на который я не подписан в телеге
OleH
Че за хуйня блядь
Andrii
Просто одномерный массив int можно неясно привести к типу указатель int *
Но секрет в том, что и двумерный массив int тоже можно привести к такому же указателю int *
Но вообще массивы и указатели разные вещи
Andrii
Шаман Каган
OleH
Vladislav
Andrii
А вопрос был «почему ругается компилятор»?
Vladislav
блин, из-за вашей больтовни теперь я запутался...
OleH
Андрий как быстро заменить значение массива строк? Типо {"1dd","2as","3vv"} на другие?
OleH
Я через цикл попробовал но чет не быстро не получилось код написать...
Vladislav
char x;
char x[]; - массив
char *x; - указатель
char x[][]; - массив
char *x[]; - массив указателей
char **x; - массив массивов
или еще что-то забыл?
OleH
Сережа
Вечер добрый
А почему ру текст желтым стал выделяться в vs code? Раньше же вроде не было такого
OleH