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;
}
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;
}