Jak mogę zrobić coś takiego?

0

Jak mogę stworzyć wskaźnik, który będzie wskazywał miejsce w pamięci, które dopiero później zarezerwuję?

0

char *ptr = NULL;

ptr = (char*)malloc(100);

0

Nie bardzo to wszystko... Nie możesz sobie wybrac obszaru, który póżniej sobie zarezerwujesz, przynajmniej nie bez głębokiej ingerencji w proces odpowiedzialny za obsługę pamięci. To system zarządza wybieraniem wolnych obszarów, strategią alokacji, a takze to system zwraca wskaznik do przydzielonego obszaru. No chyba, że potrafisz przewidywać przyszłość, albo dogłębnie znasz system.

0

A jeśli mam taką(element kolejki), to jak utworzyć wsk->następny, aby wskazywał na następny element kolejki?

struct stos *dodajelement(int war, struct stos *pocz)
{
struct stos wsk=(struct stos)malloc(sizeof(struct stos));
wsk->wartosc=war;
wsk->nastepny=pocz;
return wsk;
}

0

hmm interesuje mnie dlaczego chcesz znać miejsce gdzie przydzielisz pamięć, nigdy się z czymś takim nie spotkałem.

0

Struktura do tej kolejki wygląda tak:

struct kolejka
{
int wartosc;
struct kolejka *nastepny;
};

Ja chciałem, aby wskaźnik wskazywał na następny element, abym później mógł odtwarzać je po kolei, od pierwszego elementu.

0
struct kolejka{
 struct kolejka *nx; // skroce, zeby sie ladniej pisalo
 int val;
};

kolejka* queue=0; // =NULL

void add1(kolejka*& k,int w){ // dodaje na koncu kolejki
  if(k){
    kolejka* p=k;
    while(p->nx)p=p->nx;
    p->nx=(kolejka*)malloc(sizeof(kolejka));
    p=p->nx;
    p->nx=0;
    p->val=w;
  }else{
    k=(kolejka*)malloc(sizeof(kolejka));
    k->val=w;
    k->nx=0;
  }  
}

void add2(kolejka** k,int w){ // ten sam efekt, ale inaczej napisane
  if(*k){
    kolejka* p=*k;
    while(p->nx)p=p->nx;
    p->nx=(kolejka*)malloc(sizeof(kolejka));
    p=p->nx;
    p->nx=0;
    p->val=w;
  }else{
    (*k)=(kolejka*)malloc(sizeof(kolejka));
    (*k)->val=w;
    (*k)->nx=0;
  }  
}

main(){
  add1(queue,1);
  add2(&queue,2); // dopisane : zapomnaiłem o &
}

Funkcję, która dodaje na początku sam napisałeś

0

Wielkie dzięki za pomoc!!!

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