Pomoc w dopisaniu jednego destroya w C

XJulekx

Użytkownik
Dołączył
Październik 30, 2012
Posty
5
Witajcie mam napisać w C takie coś
Dla obiektu, dla wskaznika na obiekt, dla wskazninka na talice obiektow, i wskaznika na wskaznik napisać trzy przeładowane funkcje nic nie zwracajace tylko zmieniaja się argumenty, tworzace odpowiednio wskaznik, tablice i tablice wskaznikow.(mallociem), następnie 4 przeładowane funkcje inicjalizujace dla obiektu, dla wskaznika na obiekt, dla wskazninka na talice obiektow, i wskaznika na wskaznik. 4 funkcje wyswietlajace odpowiednio cos swojego i 3 funkcje typu destroy i ewentualnie mi cos poprawicie?

I teraz mam problem z jednym destroyem nie wiem jak go napisać, pomozecie?


#include "stdafx.h"
#include <iostream>
#include "stdio.h"
using namespace std;

struct A
{
int dane1;
};


void create(A* &wsk1)
{
wsk1=(A*)malloc(sizeof(A));
}

void create(A* &wsk2, int liczba)
{
wsk2=(A*)malloc(sizeof(A)*liczba);
}

void create(A** &wsk3, int liczba)
{
wsk3=(A**)malloc(sizeof(A*)*liczba);
for (int i=0;i<liczba;i++)
{
wsk3=(A*)malloc(sizeof(A));
}
}

void set(A &wsk)
{
wsk.dane1=10;
}

void set(A* &wsk1)
{
wsk1->dane1=10;
}

void set(A* &wsk2, int liczba)
{
for(int i=0;i<liczba;i++)
{
wsk2.dane1=10;
}
}

void set(A** &wsk3, int liczba)
{
for(int i=0;i<liczba;i++)
{

for(int j=0;j<liczba;j++)
{
wsk3[j].dane1=15;
}
}
}

void print(A &wsk)
{
printf("%d\n", wsk.dane1);

}

void print( A*& wsk1)
{

printf("%d\n\n", wsk1->dane1);

}

void print(struct A*& wsk2, int liczba)
{


for(int i=0; i<liczba; i++)
{
printf("%d\n", wsk2.dane1);
}

}

void print(struct A**& wsk3, int liczba)
{

for(int i=0; i<liczba; i++)
{
printf("%d\n\n", wsk3->dane1);
}

}

void destroy(A* &wsk1)
{
free(wsk1);

}



void destroy(A** &wsk3, int ilosc)
{
for(int i=0; i<ilosc;i++)
{

free(wsk3);

}
free(wsk3);
}




int main()
{
struct A wsk;
struct A* wsk1;
struct A* wsk2;
struct A** wsk3;

create(wsk1);
create(wsk2, 10);
create(wsk3, 10);

set(wsk);
set(wsk1);
set(wsk2, 10);
set(wsk3, 10);

print(wsk);
print(wsk1);
print(wsk2, 10);
print(wsk3, 10);

destroy(wsk1);
destroy(wsk3, 10);

getchar();
getchar();
return 0;
}
 
Do góry Bottom