Witam ostatnio zaczełem pisać programik nie mój z Thinking in C, było w kodzie kilka błędów ale je wyeliminowałem. Po nich pojawił się inny czy może ktoś powiedzieć oco kaman? [compiler Dev-C++]
In function main': [Linker error] C:\MinGW\msys\1.0\src\mingwrt/../mingw/main.c:73: undefined reference to
WinMain@16'
collect2: ld returned 1 exit status
typedef struct CStashTag{
int size;
int quantity;
int next;
int index;
unsigned char* storage;
}CStash;
void initialize(CStash* s, int size);
void cleanup(CStash* s);
int add(CStash* s, const void* element);
void* fetch(CStash* s, int index);
int count(CStash* s);
void inflate(CStash* s,int increase);
#include "Clib.h"
#include <iostream>
#include <cassert>
using namespace std;
const int increment=100;
void initialize (CStash* s, int sz){
s->size=sz;
s->quantity=0;
s->storage=0;
s->next=0;
s->index=0;
}
int add(CStash* s, const void* element) {
if (s->next >=s->quantity)
inflate (s, increment);
int startBytes= s->next * s->size;
unsigned char* e=(unsigned char*)element;
for (int i=0;i<s->size;i++)
s->storage[startBytes+i]=e[i];
s->next++;
return(s->next-1);
}
void* fetch(CStash* s,int index)
{
assert(0<-index);
if(index >= s->index)
return 0;
return &(s->storage[index* s->size]);
}
int count(CStash* s){
return s->next;
}
void inflate(CStash* s, int increase)
{
assert(increase>0);
int newQuantity=s->quantity+increase;
int newBytes=newQuantity * s->size;
int oldBytes= s->quantity * s->size;
unsigned char* b= new unsigned char[newBytes];
for(int i=0;i<oldBytes;i++)
b[i]=s->storage[i];
delete[](s->storage);
s->storage =b;
s->quantity=newQuantity;
}
void cleanup(CStash* s){
if (s->storage !=0){
cout<<"zwalnianie pamieci"<<endl;
delete []s->storage;
}
}