• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Uzupełnienie tablicy struktur losowymi elementami

Object Storage Arubacloud
0 głosów
1,217 wizyt
pytanie zadane 9 stycznia 2018 w C i C++ przez Tomek112 Początkujący (310 p.)

Witam,

mam problem z uzupełnieniem wartości w tablicy struktur za pomocą stworzonej funkcji. Celem programu ma być uzupełniona losowymi wartościami tablica struktura. Losowe wartości zostały ograniczone do określonego zakresu. Problemem jest przekazanie do funkcji odpowiedniego parametru wskazującego na utworzoną tablicę struktur a przynajmniej tak mi się wydaje. Proszę o wskazówkę jak rozwiązać ten problem smiley

#include <stdio.h>
#include <stdlib.h>
#include <time.h>



const int N_POINTS=10;

struct Point{
    int x;
    int y;
};
void fill_random(struct Point points[], int n){
    int i;
    for(i=0;i<n;i++){
        int x,y;

        x=rand()%201-100;
        y=rand()%201-100;

        points[i].x=x;
        points[i].y=y;


    }
}

int main()
{
    srand(time(0));

    struct Point random_points[N_POINTS];

    struct Point *p;
    p=&random_points[N_POINTS];


    fill_random(*p,N_POINTS);

    printf("%d",random_points[2].x);

    return 0;
}

 

1 odpowiedź

+1 głos
odpowiedź 9 stycznia 2018 przez criss Mędrzec (172,590 p.)
p=&random_points[N_POINTS];

Tu masz pobranie adresu elementu tablicy od indeksie N_POINTS. Taki sam efekt byś uzyskał gdybyś napisał `random_point + N_POINTS` (wskaźnik wskazujący na początek tablicy przesunięty o N_POINTS elementów rozmiaru sizeof(Point) bajtów).
Kod byłby poprawny gdybyś do `p` przypisał `&random_points[0]` albo po prostu `random_points`. W obu przypadkach jest to adres początku tablicy. I dodatkowo musisz wyrzucić operator dereferencji (gwiazdka) z linii 38., bo to zupełnie nie ma sensu (*p jest typu Point, funkcja oczekuje typu Point*)

komentarz 9 stycznia 2018 przez Tomek112 Początkujący (310 p.)
edycja 10 stycznia 2018 przez Tomek112
Dzięki, twoja odpowiedź rozwiązała podany problem.

Podobne pytania

+2 głosów
3 odpowiedzi 3,198 wizyt
pytanie zadane 12 listopada 2019 w C i C++ przez Tawka Nowicjusz (200 p.)
0 głosów
3 odpowiedzi 28,574 wizyt
pytanie zadane 3 grudnia 2017 w C i C++ przez SzaaBao Początkujący (380 p.)
0 głosów
2 odpowiedzi 3,281 wizyt

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...