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