Avatar billede skeleton Nybegynder
06. september 2002 - 10:46 Der er 8 kommentarer og
2 løsninger

Array som parameter

Hej jeg har lidt problemer med denne kode. Jeg får en fejl når jeg compiler koden i C++Builder.
Cannot create pre-compiled header: write failed
i denne linie
int cpr_check(int p_cpr_nr[]){
?????????????????????



//Kode start

#include <iostream.h>
#include <conio.h>

int cpr_check(int p_cpr_nr[]){
        return 1;

}

void main(){
        int cpr_nr[10];
        for(int i=1; i<11; i++){
                cpr_nr[i]=i;
        }
        if (cpr_check(cpr_nr)==1)
                cout    << "Dette er et gyldigt";
        else
                cout    << "Dette er ikke et gyldigt";

        getch();
}
//kode slut
Avatar billede jpk Nybegynder
06. september 2002 - 10:51 #1
for(int i=1; i<11; i++)
skal være
for(int i=0; i<10; i++)
Avatar billede ladyhawke Novice
06. september 2002 - 10:53 #2
Hvis du har problemer med pre-compiled headers bør du slå det fra: i Project options (project menuen) vælg compiler tab'en og
Avatar billede ladyhawke Novice
06. september 2002 - 10:54 #3
arrghh klikke udfør da jeg skiftede til dette vindue vælg compiler tab'en og vælg none i pre-compiled headers....
Avatar billede ladyhawke Novice
06. september 2002 - 10:55 #4
jpk har ret i at din løkkevariabel skal ændres som angivet, men prøv også det andet
Avatar billede jpk Nybegynder
06. september 2002 - 10:57 #5
Du bør sende adressen på dit array...

if(cpr_check(&cpr_nr)==1)
Avatar billede skeleton Nybegynder
06. september 2002 - 11:04 #6
Jeg har slået headers fra og nu får jeg ingen fejl. Men hvorfor en header fejl...???
Er der en der kan forklare det.
Avatar billede ladyhawke Novice
06. september 2002 - 12:20 #7
Jeg kan ikke forklare hvorfor, men jeg tror at precompiled headers fejler sommetider, hvis der arbejdes med forskellige versioner af et program...

De bruges til at spare compiler tid, men det dur jo ikke hvis den pre-compiled header man har ikke har samme definitioner som det aktuelle program. Jeg har arbejdet med i et større udviklingsprojekt, hvor vi var nødt til at slå dem fra, for ellsers blev programmet ustabilt eller direkte fejlbehæftet...
Avatar billede soepro Nybegynder
09. september 2002 - 09:03 #8
Det ligger et patch på www.inprise.com til Borlands C++ Builder som beskriver at løse netop d.o. problem. Derudover har jeg selv erfaret at man i praksis skal sørge for under 'Project->Options', 'Advanced compiler' fanen at sætte 'Language compliance' til 'Borland' hvis man anvender VCL'erne, for noget af koden i deres header-filer er simpelthen ikke standard ANSI C. 'Source' og 'Nested comments' skal man også køre uden - igen er der nogen af deres egne filer som ikke kan kompileres, hvis 'Nested comments' er sat til. (Ikke alt for fikst, men sådan er det i alt fald i version 4.0 PRO)
Avatar billede soepro Nybegynder
09. september 2002 - 09:06 #9
skeleton >> Derudover har jpk selvfølgelig ret i de programmeringsmæssige fejl - husk på at i C er alle tabeller (arrays) ZERO-based, dvs. det først element i tabellen har indeks 0. Du vil derfor oftest se konstruktioner i for løkker der liger denne:

for (idx = 0; idx < max; idx++)
{
}

Hvor max er *antallet* af elementer i din tabel. (Ikke den maksimale index-værdi.)
Avatar billede skeleton Nybegynder
09. september 2002 - 09:40 #10
Tak for svaret jeg blev lidt klogere.
Og tak til soepro for de 2 spg du nu har hjulpet mig med.
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