Jori13
Gebruiker
- Lid geworden
- 18 jan 2010
- Berichten
- 159
Hallo,
Voor een opgave uit een boek moet ik een soort database voor CD's maken, daarbij heb ik de volgende code geschreven:
[CPP]#include "taak4_O2.h"
void addCD(cd **, cd, int*);
void printCD(cd **);
int main(void)
{
int i;
int cur_cd = 0;
cd new_cd;
cd **cd_lijst;
cd_lijst = (cd**) malloc(100 * sizeof(cd*));
for(i = 0 ; i < 100 ; ++i) cd_lijst = (cd*) malloc(sizeof(cd));
/* De CD */
new_cd.titel = "Thiller";
new_cd.artiest = "Michael Jackson";
new_cd.speelduur = 500;
/* CD toevoegen */
addCD(cd_lijst, new_cd, &cur_cd);
/* Printen */
printCD(cd_lijst);
free(cd_lijst);
return 0;
}
/* CD toevoegen */
void addCD(cd **cd_lijst, cd new_cd, int *cur_cd)
{
cd_lijst[*cur_cd]->titel = new_cd.titel;
cd_lijst[*cur_cd]->artiest = new_cd.artiest;
cd_lijst[*cur_cd]->speelduur = new_cd.speelduur;
(*cur_cd)++;
}
void printCD(cd **cd_lijst)
{
int i = 0;
while (cd_lijst->titel != NULL)
{
printf("%s\n", cd_lijst->titel);
printf("%s\n", cd_lijst->artiest);
printf("%d\n\n", cd_lijst->speelduur);
++i;
}
}[/CPP]
De inhoud van de header file is:
[CPP]#include <stdio.h>
#include <stdlib.h>
typedef struct
{
char* titel;
char* artiest;
int speelduur; /* In sec */
} cd ;[/CPP]
De output is dit:
Dat duid erop dat ik iets niet goed heb gedaan met malloc(), maar wat?
Alvast bedankt voor jullie hulp,
Jori.
Voor een opgave uit een boek moet ik een soort database voor CD's maken, daarbij heb ik de volgende code geschreven:
[CPP]#include "taak4_O2.h"
void addCD(cd **, cd, int*);
void printCD(cd **);
int main(void)
{
int i;
int cur_cd = 0;
cd new_cd;
cd **cd_lijst;
cd_lijst = (cd**) malloc(100 * sizeof(cd*));
for(i = 0 ; i < 100 ; ++i) cd_lijst = (cd*) malloc(sizeof(cd));
/* De CD */
new_cd.titel = "Thiller";
new_cd.artiest = "Michael Jackson";
new_cd.speelduur = 500;
/* CD toevoegen */
addCD(cd_lijst, new_cd, &cur_cd);
/* Printen */
printCD(cd_lijst);
free(cd_lijst);
return 0;
}
/* CD toevoegen */
void addCD(cd **cd_lijst, cd new_cd, int *cur_cd)
{
cd_lijst[*cur_cd]->titel = new_cd.titel;
cd_lijst[*cur_cd]->artiest = new_cd.artiest;
cd_lijst[*cur_cd]->speelduur = new_cd.speelduur;
(*cur_cd)++;
}
void printCD(cd **cd_lijst)
{
int i = 0;
while (cd_lijst->titel != NULL)
{
printf("%s\n", cd_lijst->titel);
printf("%s\n", cd_lijst->artiest);
printf("%d\n\n", cd_lijst->speelduur);
++i;
}
}[/CPP]
De inhoud van de header file is:
[CPP]#include <stdio.h>
#include <stdlib.h>
typedef struct
{
char* titel;
char* artiest;
int speelduur; /* In sec */
} cd ;[/CPP]
De output is dit:
Code:
Thiller
Michael Jackson
500
↑Úi
1128091725
↑Úi
1635017028
↑Úi
1936876915
↑Úi
1550606691
↑Úi
6910575
↑Úi
7497067
↑Úi
1919904348
Dat duid erop dat ik iets niet goed heb gedaan met malloc(), maar wat?

Alvast bedankt voor jullie hulp,
Jori.
Laatst bewerkt: