Avatar billede peritas Nybegynder
11. maj 2005 - 11:56 Der er 3 kommentarer og
1 løsning

calloc i ansi c funktion

Hej EXP'er

Jeg har et problem med at kalde calloc i en funktion. Mit (del)program er bygget op med en main funktion hvor der skal foregå en del beregninger på et 2D array som kan svinge meget i størelse (fra ca 50x50 til ca 400x400). størelsen afgøres af en sortering mellem to rækker i et mysql resultat og kommer ud i en int variabel,  calloc skal initialisere memory til en pointer jeg får af main funktionen. Da jeg gerne ville undgå at kalde de samme data ud fra mysql to gange ville jeg foretrække at det hele sker i en funktion samt det er nødvendigt at jeg har 0 på alle åbne pladser (derfor calloc). Jeg har prøvet at oprette pointeren i selve funktionen men dette giver problemer i retuneringen, mens hvis jeg bruger en pointer oprettet af main så virker calloc ikke på den egentlige pointer. Da vi er meget opmærksomme på både kørselstid og kompleksiteten og at holde begge disse nede, så ville jeg helst undgå at skulle igennem alle punkter i arrayet. de essentielle dele af koden er skrevet nedenfor:
Med venlig hilsen Jonas

/* funktionen defineres */
void map(int *matrix, char *bygning, int etage){
/* high er den int variabel som beskriver størrelsen */
if(matrix = calloc(high*high, sizeof(int))) {printf("Yahoo\n");}
    else{printf("pierce of shit");}
}
/* main funktionen med definition af pointer samt kald af funktion */
int main(){
int *kort;
/* &bygning og 0 er ekstra parameter der bruges til at hente de rette værdier fra mysql */
map(kort,&bygning,0);
return 0;
}
Avatar billede arne_v Ekspert
11. maj 2005 - 12:04 #1
Prøv:

/* funktionen defineres */
void map(int **matrix, char *bygning, int etage){
/* high er den int variabel som beskriver størrelsen */
if(*matrix = calloc(high*high, sizeof(int))) {printf("Yahoo\n");}
    else{printf("pierce of shit");}
}
/* main funktionen med definition af pointer samt kald af funktion */
int main(){
int *kort;
/* &bygning og 0 er ekstra parameter der bruges til at hente de rette værdier fra mysql */
map(&kort,&bygning,0);
return 0;
}
Avatar billede arne_v Ekspert
11. maj 2005 - 12:05 #2
int **matrix
*matrix = calloc
map(&kort
Avatar billede peritas Nybegynder
11. maj 2005 - 12:14 #3
Tak skal du have det virkede. Man undrer sig over hvad man kan få fire timer til at gå med. Når men videre mod eksamen. Smid et svar hvis du vil have nogle point... god pinse
Avatar billede arne_v Ekspert
11. maj 2005 - 12:19 #4
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



Seneste spørgsmål Seneste aktivitet
I går 17:10 Joomla artikler Af rmadsen80 i CMS-systemer
I går 16:54 Printervalg til kontor Af tumben i Printere
I går 15:08 Http client med X509Certificate2 Af joki i C#
I går 13:02 Hjemmenetværk Af Andfer i LAN/WAN
I går 11:17 Chrombook Af lurup i Andre styresystemer


White paper
Tidsbegrænset kampagne: Overvejer du at udskifte eller tilføje printere i din forretning? Vi kan tilbyde én eller flere maskiner gratis