Dwa problemy: przeciążanie operatorów i struktury [C/C++]

0

Witam, prosiłbym o pomoc z dwoma problemami:

  1. Jeśli zadeklaruję strukturę:
struct abc{
double srednia;
int a;
} *wsk;

Jak mogę przypisać jakąś wartość (np 2.5) w polu srednia zmiennej *wsk?

for(x=a;x<=b+0.5*dx;x+=dx) printf(”%10.2f\n%15.4f\n”,x,sin(x));

Jak mogę przerobić tą pętlę na do{} while z użyciem przeciążonego wyjścia >>? Czytałem o przeciążeniach operatorów, ale nie bardzo rozumiem.

0
wsk->srednia = 2.5 

przy czym musisz pamiętać żeby zarezerwować pamięć dla tego wskaźnika

  1. to jest wejście << to jest wyjście. Więc chcesz wejście czy wyjście?
    http://stackoverflow.com/questions/10405312/c-ostream-friends-and-namespaces

tu masz przykład dla wyjścia

0
#include <stdio.h>
#include <conio.h>

struct abc{
double srednia;
int a;
} *wsk;

void main(void){

	abc* wsk;
	wsk->srednia = 2.5;
	getch();
	
}

Program wysypuje się sekundę po odpaleniu.

Co do 2, chyba za wysokie progi na moje nogi na razie, czytam i nie bardzo wiem co czytam.

0

Bo nie przedzieliłeś pamięci.

#include <stdio.h>
#include <stdlib.h>
 
struct abc
  {
   double srednia;
   int a;
  };
 
int main()
  {
   abc *wsk=(abc*)malloc(sizeof(abc));
   wsk->srednia = 2.5;
   while(getchar()!='\n') {}
   return 0;
  }
0

Dzięki, działa. To mam jeszcze jedno pytanie a propoS wskaźników.

Jeśli zrobię sobie tablicę i wypełnię liczbami np

printf("Podaj liczbe elementow: ");
	int n;
	scanf("%d",&n);
	printf("Podaj %d elementow: ",n);
	int* tab=new int[n];
	int *wsk=&tab[0];
	for(int i=0;i<n;i++){
		scanf("%d",&wsk);
		wsk++;
		}

A następnie przekażę do funkcji

abc(n,tab);

którą zadeklarowałem tak

int abc(int i, int* ptr)

To jak mogę się w tej funkcji odwołać do wartości np 2 elementu tej tablicy, zakładając, że istnieje oczywiście?

0

ptr[1]

1 użytkowników online, w tym zalogowanych: 0, gości: 1