Сохранен 25
https://2ch.hk/b/res/319170653.html
Домен arhivach.hk временно не функционирует! Используйте адрес ARHIVACH.SITE.
24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Нормально ли использовать указатели для решения любой задачи на C? Например, нужно найти количество

 Аноним 21/04/25 Пнд 12:48:15 #1 №319170653 
17452288416051140936373573903522.jpg
Нормально ли использовать указатели для решения любой задачи на C?
Например, нужно найти количество вхождений подстроки в строке. Я беру указатель и присваиваю ему значение strstr(строка, подстрока) и засовываю его в цикл while, проверяя чтобы он не был равен NULL. После нахождения вхождения я увеличиваю указатель на 1 (сдвигаю на следующую ячейку памяти), после чего цикл повторяется.
Эту задачу можно решить без указателей? Вообще это не считается болезнью, что теперь при решении любых задач я думаю про ячейки памяти и указатели?
sage[mailto:sage] Аноним 21/04/25 Пнд 12:49:47 #2 №319170704 
>>319170653 (OP)
>Нормально ли использовать указатели
намана
Аноним 21/04/25 Пнд 12:52:56 #3 №319170824 
>>319170653 (OP)
Ну Кирилл так и делает.
Аноним 21/04/25 Пнд 13:00:43 #4 №319171106 
>>319170653 (OP)
Не только нормально. Это, блядь, основа C.
Мой любимый вопрос: какой вариант объявления массива в C является правильным и успешно скомпилируется? Почему?
Вариант 1:
int yoba[4];
Вариант 2:
int [4]yoba;
Аноним 21/04/25 Пнд 13:02:06 #5 №319171162 
>>319171106
Фу, блядь, накосячил.
Имею в виду

Вариант 1:
int yoba[4];

Вариант 2:
int 4[yoba];
Аноним 21/04/25 Пнд 13:02:27 #6 №319171176 
Задачи в этой книжке относятся каждые к своему разделу, если в разделе проходили какую-то хуйню а ты решаешь всё на указателях то ты шорткатишь процесс и обучение будет менее качественным, ну это моё мнение
Аноним 21/04/25 Пнд 13:05:11 #7 №319171284 
>>319171106
>>319171162
Подходит только первый вариант из-за синтаксиса. А в чем подвох?
sage[mailto:sage] Аноним 21/04/25 Пнд 13:09:28 #8 №319171438 
убшиз на месте?
Аноним 21/04/25 Пнд 13:11:31 #9 №319171516 
>>319171284
Попробуй второй вариант и проверь, компилится ли он.
Аноним 21/04/25 Пнд 13:15:56 #10 №319171692 
>>319171516
main.cpp:2: ошибка: expected unqualified-id before numeric constant
͏ ͏ ͏ ͏ ͏ int 4[yoba];
͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ^
Аноним 21/04/25 Пнд 13:16:32 #11 №319171711 
>>319171284
>>319171516
Да, ты прав, не скомпилится, я долбоёб.
Тогда исправленный вопрос. Если мы объявляем массив
int yoba[15];
То какой вариант обращения к ячейке правильный:
yoba[5] = 89;
или
5[yoba] = 89;
?
Аноним 21/04/25 Пнд 13:17:12 #12 №319171729 
>>319171516
error: expected identifier or '(' before numeric co
В моем компиляторе так.
Аноним 21/04/25 Пнд 13:26:49 #13 №319172051 
>>319171711
Во втором случае синтаксическая ошибка.
Аноним 21/04/25 Пнд 13:28:19 #14 №319172120 
>>319171162
>int 4[yoba];
Ты чо дебил совсем?
Аноним 21/04/25 Пнд 13:29:24 #15 №319172168 
>>319170653 (OP)
А при чем тут указатели, если у тебя сраный индекс массива?
Аноним 21/04/25 Пнд 13:30:13 #16 №319172201 
>>319171711
>5[yoba] = 89;
Ёба, ты по какому ютубзику изучал программирование?
Аноним 21/04/25 Пнд 13:32:01 #17 №319172251 
>>319170653 (OP)
>нужно найти количество вхождений подстроки в строке.
foo.split(bar).length-1;
Аноним 21/04/25 Пнд 13:33:46 #18 №319172318 
image.png
>>319172251
Например у меня в скрипте двача замена текста так работает
Аноним 21/04/25 Пнд 13:47:46 #19 №319172850 
>>319172201
Попробуй это:

//gcc 7.4.0
#include <stdio.h>
int main(void)
{
int yoba[15];
5[yoba] = 89;
printf("yoba[5] = %i\n", yoba[5]);
printf("5[yoba]= %i\n", 5[yoba]);
return 0;
}
Аноним 21/04/25 Пнд 13:51:18 #20 №319172971 
>>319171711
Оба, оператор [] макрос, который раскроется в 5 + yoba.
Аноним 21/04/25 Пнд 13:52:42 #21 №319173024 
>>319172971
Ну вот, сломал интригу. Ты ведь не ОП?
Аноним 21/04/25 Пнд 13:55:16 #22 №319173112 
>>319173024
Не, в отличии от опа я пишу на с++ и для таких задачек как у него использую стандартную либу
Аноним 21/04/25 Пнд 13:56:12 #23 №319173148 
>>319170653 (OP)
Норм, C как раз и предполагает жонглирование указателями - фактически, это основной элемент языка.
Аноним 21/04/25 Пнд 13:59:36 #24 №319173264 
>>319173112
Я так и понял. Успехов тебе, анон, и поменьше raw указателей и легаси-говна на пути!
Аноним 21/04/25 Пнд 14:04:57 #25 №319173451 
>>319173264
Про легаси и raw поинтеры очень жизненно) Спасибо, Анон, тебе тоже поменьше говнокода и побольше успехов!
comments powered by Disqus

Отзывы и предложения