LINUX.ORG.RU

Указатели на структуры

 


0

1

Как писал выше, начал хелловорлдить. Есть такой код:


#define MAX 10
#define WBD '*'
#define DELAY 200

struct pointworm {
		       
		       int x;
		       int y;      
    } worm[MAX]=
		
		{5,5,
			5,4,
		 4,4,
		 3,4,
		 2,4,
		 2,3,
		 }, newhead;


void movesnake( struct pointworm pworm[],struct pointworm pnewhead, int lenght)
		{
		lenght--;
	 while(lenght>0)
	 {	pworm[lenght]=pworm[lenght-1];
	 	lenght--;
	 	}
	pworm[0]=pnewhead;
	};

int main (void){
newhead=worm[0];	
int i=0,N=6;
newhead.x++;
movesnake(worm, newhead, N);
while(worm[i].x != 0 && worm[i].y != 0) {
printf("%d, %d\n",worm[i].x, worm[i].y);
i++;};
return 0;
}t
Да, программа работает, но у меня возникли вопросы. Я определил функцию с аргументами
void movesnake( struct pointworm pworm[],struct pointworm pnewhead, int lenght)
, а в программе вызвал ее
 movesnake(worm, newhead, N); 
Я передал ведь туда просто значения полей структур, и, как мне кажется, аргументы не должны изменитбся(но они поменялись, что и требовалось) или адреса? Ведь при передаче адреса, надо было передавать так movesnake(&worm, &newhead, N);, а в самой функции определять аргументы как указатели на структуры. В чем я ошибаюсь?

★★★★★

Последнее исправление: cetjs2 (всего исправлений: 1)
Ответ на: комментарий от Aswed

с мобилы пастил, вот и расформатировало

int13h ★★★★★
() автор топика
Ответ на: комментарий от int13h

Нету такого. Я уже наваял тебе простой пример моего кода. Когда ты пишешь себе удобный набор функций и уже из него ваяешь дальше. Ваше кастыление в каждой функции, никакой общей стилистики - всякие недоциклы, ненужное кол-во елементов(это кстати процветает в либц, но с этим ничего не поделаешь). Тонны всякого говна. Неиспользование и 10% возможностей сишки и прочее.

Про проекты не знаю - я ничего понятного не пишу. Не надо никогда ничей стиль принимать, пытатся писать в какой-то стилистике и прочее. Рассуждать об этом ты сможешь только тогда, когда ты будешь !0, а т.к. в этом мире 98% сишников и 99.3% программистов тотальные нули, то естественно в ширпотребе ты вменяемый стиль не найдёшь.

Сначал осиливаешь сишку и матчасть, а потом уже выбираешь стиль. Ты сам понимаешь что и как надо юзать, а когда ты начитаешься говна и твоя голова будет забита шаблонами ущербанов нулёвых - естественно путёвого из тебя ничего не выйдет. Тебе просто будет лень что-то менять.

Я потратил 5минут и написал десяток функций, на которых ты можешь построить код намного сложнее и он будет намного лучше. Ты спокойно суёшь их в хеадер, объявляешь vec_ctx() как статик и иклюдишь куда тебе угодно, не беспокоясь ниочем. А нулёвые обсоски и дальше будут мучатся с линкерами и прочим.

Если ты считаешь мой код красивым - попытайся пописать также, авось тебе понравится, если нет - ищи другой стиль. Перепиши свою портянку 100500 раз - найди лучший вариант.

anonymous
()
Ответ на: комментарий от anonymous

спасибо. я просто , пока, иду по книге к&р и пишу просто такие хелловорлды. а этот код набирал на мобилке и онлайн компилил. спасибо за советы

int13h ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.