Ovaj program bi treabao da ucitava odredjen broj stringova, smjesta na heap te prebrojava koliko puta je svaki od strignva unesen. Uspio sam da ga kompajliram i pokrenem ali cim pocjem nesto unositi on javlja gresku, nesto kao:
"The instruction at "0x7802.." referenced memory at "0x....". The memory could not be "written"l
kod je slijedeci:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<malloc.h>
typedef struct Lista{
char* element;
Lista* next;
int br;
}Lista_Rijeci;
void ucitaj_NizRijeci(Lista_Rijeci*);
void ispisi_NizRijeci(Lista_Rijeci*);
void insert(char*,Lista_Rijeci*);//Pomocna Funkcija
typedef Lista_Rijeci* point;
main()
{
Lista_Rijeci* Prvi=0; ;
ucitaj_NizRijeci(Prvi);
getchar();
}
void insert(char* str,Lista_Rijeci*pok){
int pom=0;
if(!pok){pok==(point)malloc(sizeof(Lista_Rijeci));
strcpy(pok->element,str);
pok->br=1;
pok->next=0;
}
while(pok!=0)
{
if(!strcmp(str,pok->element))
{
pok->br++;
pom=1;
}
if(pom)break;
else
pok=pok->next;
}
if(pom){
pok->next=(point)malloc(sizeof(Lista_Rijeci));
strcpy(pok->next->element,str);
pok->br=1;
pok->next->next=0;
}
}
void ucitaj_NizRijeci(Lista_Rijeci* pok){
char* pomocni;
do
{
gets(pomocni);
insert(pomocni,pok);
if(!strcmp(pomocni,"0"))break;
}
while(pomocni[0]);
}
void ispisi_NizRijeci(Lista_Rijeci*pok){
while(pok!='\0')
{
puts(pok->element);
printf(" %d",pok->br);
printf("\n");
pok=pok->next;
}
}
Unaprijed hvala na pomoci.
"The instruction at "0x7802.." referenced memory at "0x....". The memory could not be "written"l
kod je slijedeci:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<malloc.h>
typedef struct Lista{
char* element;
Lista* next;
int br;
}Lista_Rijeci;
void ucitaj_NizRijeci(Lista_Rijeci*);
void ispisi_NizRijeci(Lista_Rijeci*);
void insert(char*,Lista_Rijeci*);//Pomocna Funkcija
typedef Lista_Rijeci* point;
main()
{
Lista_Rijeci* Prvi=0; ;
ucitaj_NizRijeci(Prvi);
getchar();
}
void insert(char* str,Lista_Rijeci*pok){
int pom=0;
if(!pok){pok==(point)malloc(sizeof(Lista_Rijeci));
strcpy(pok->element,str);
pok->br=1;
pok->next=0;
}
while(pok!=0)
{
if(!strcmp(str,pok->element))
{
pok->br++;
pom=1;
}
if(pom)break;
else
pok=pok->next;
}
if(pom){
pok->next=(point)malloc(sizeof(Lista_Rijeci));
strcpy(pok->next->element,str);
pok->br=1;
pok->next->next=0;
}
}
void ucitaj_NizRijeci(Lista_Rijeci* pok){
char* pomocni;
do
{
gets(pomocni);
insert(pomocni,pok);
if(!strcmp(pomocni,"0"))break;
}
while(pomocni[0]);
}
void ispisi_NizRijeci(Lista_Rijeci*pok){
while(pok!='\0')
{
puts(pok->element);
printf(" %d",pok->br);
printf("\n");
pok=pok->next;
}
}
Unaprijed hvala na pomoci.