Anonymous
А тебе надо сраться в чатах
Anonymous
э кортычка присядь
Anonymous
Ты очень достойно отстаиваешь правоту
Anonymous
ты скакова сраёна?
Anonymous
А ты им и не попытался помочь
Anonymous
Не ты и не я
Anonymous
Ты не поправил
Anonymous
Ты смолол херню
Anton
Остановите, пожалуйста
Anonymous
О sizeof(ptr) примера которому выше нет
Anonymous
Серьёзно? И к чему ты это написал?
Anonymous
А как же 16битное окружение
Anonymous
Ты же любишь выебнуться
Anonymous
Продолжим
Anonymous
Ну чё, ты умный и заткнул меня темой указателей в примере sizeof(char)*6
Anonymous
А я тупой первокурсник, обьсни мне почему гуру вроде тебе непоследователен?
Bandikoot
А в примере выше всё равно идёт умножение на 6, так что херня это собачья с размером указателя
Bandikoot
Скорее всего просто не был учтён нулевой символ
Bandikoot
Смысл в том что он мог дописать чуть дальше, пропустив нулевой символ
Bandikoot
Из-за этого строка могла оказаться длиннее
Bandikoot
Чем выделенно было изначально памяти
Anonymous
Заметь, я тебя тупым первокурсником не называл и не тыкал в стандарт
Bandikoot
ответ:
Bandikoot
Ебать ты даун
Anonymous
Orphey, читай стандарт, там всё последовательно
Anonymous
Да, он вывел меня из себя
Anonymous
Лол
babysitter
я понял. не распарсил скобки и ляпнул глупость, а потом просто из принципа пошел защищаться.
Anonymous
Так почему ты разговариваешь как гопник из подворотни тыкая стандартом
Anonymous
Цифры 6 в стандарте нет
Anonymous
А в примере указанном выше была
Anonymous
Ну да, внатуре
Bandikoot
вы сначала запутались
Bandikoot
потом оскорбились некомпетентностью друг друга
Bandikoot
> str —--- < char
Anonymous
ребята, вопрос про динамический массив. создаю вот таким образом char* arr = (char* )malloc( 6 * sizeof(char)); далее делаю принт в консоль sizeof(arr); и оно равно 8 а не 6. может кто подскажет?
Anonymous
Я говорил по этому поводу
Dumitru
А из-за чего шум?
Anonymous
А лол
Anonymous
Я не дочитал
Anonymous
)
Anonymous
Ты продолжаешь выводить из себя
Anonymous
А вот и нет
Anonymous
Ты намеренно говоришь так чтобы тебя уебали
Anonymous
Скажи кому-нибудь то же на улице
Anonymous
Гарантирую - на ногах простоишь не долго
Andrey
стоп флуд )
Andrey
и холивар
Anonymous
Адекватные люди воспринимают критику если их не тыкают носом в стандарт по очереди называя первокурсником и стараясь поднять собственное самомнение до потолка
Anonymous
Да, определённо
Anonymous
Ну ты первым начал
Anonymous
Не находишь?
Anonymous
Стрелки я и не переводил
Anonymous
Дальше ты сказал всё о чём мы говорили
Anonymous
После того как я назвал тебя дауном, это да
Anonymous
Но ты не считаешь оскорбительным вот это?
babysitter
ну по делу, чего уж. заканчивайте
Richard
Столько срача из-за sizeof. Какая коварная функция.
Bandikoot
Столько срача из-за sizeof. Какая коварная функция.
на самом деле, очень #include <stdio.h> int main() { char str[6]; printf("%lu %lu %lu\n", sizeof(str), sizeof str, sizeof(char)); return 0; }
Anonymous
Мне не о чём с тобой говорить
Richard
на самом деле, очень #include <stdio.h> int main() { char str[6]; printf("%lu %lu %lu\n", sizeof(str), sizeof str, sizeof(char)); return 0; }
Дак все логично. char* и char[] разные типы, и sizeof еще со времен си для первого случая дает размер указателя (т.е. платформозависимо), во втором - размер собственно массива. Коварство скорее в непонимании как это работает и попытка в лоб получить размер массива, имея только указатель.
Richard
пример выше можно было бы переписать еще и так: printf("%lu %lu %lu\n", sizeof(str), sizeof str, sizeof(str[0]));
Richard
а что не так то?))
Bandikoot
как я понимаю, sizeof(str) возвращает не размер указателя как такового
Bandikoot
тогда ведь было бы 8 (на x86_64)?
Bandikoot
> sizeof(type) — возвращает размер значения указанного типа в байтах
Richard
да, о чем я выше и сказал
Richard
sizeof(char) = 1 sizeof(char[6]) = 6
Richard
sizeof(char*) = 2/4/8
Richard
не помню только, на 8 битных платформах вроде тоже указатель 2 байта, потому что адресовать только 256 байт несколько не то, что хотелось бы)
Bandikoot
тогда по-другому: верно ли называть переменную типа char [] — указателем?
Richard
занятный вопрос) потому что по факту тип "массив" переведется в указатель, т.е. вполне допустимо делать char str[6] = "abcde"; char temp = *str; // a char temp = *(str+1); //b Но char* (собственно указатель) и char[] - это разные типы. Внутри, если не ошибаюсь, это работает совершенно одинаково, т.е. каких-то кастов из типа в тип нет.
Bandikoot
увы, не умею в ассемблер
Richard
из разницы как раз, например, sizeof, поэтому все же правильнее сказать, что это "почти тоже самое, что и указатель"
Bandikoot
seems legit
Square
омг, как не зайду, вы все сайзов мучаете
Square
><