Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: passing argument 1 of ‘fopen’ makes pointer from integer ...  (gelezen 2228 keer)

Offline gercokees

  • Lid
hmmm....
Ik denk dat ik weet waarom onderstaand stukje code de hierboven genoemde waarschuwing geeft bij het compileren. Het heeft natuurlijk te maken met het feit dat filenaam een array is met een aantal integers die weer als string voorgesteld kunnen worden.... pfff. Maar hoe raak ik die waarschuwing nu kwijt? Ik wil graag bij het aanroepen van main (via de commandprompt) een bestandsnaam als argument meegeven en daarna die file uitlezen. Onderstaand stukje code heb ik geknipt uit een groter geheel....

Alvast bedankt.

#include

int leesFile(filenaam)
{
    FILE *filePtr;
    printf("filenaam: %s\n", filenaam);
    filePtr = fopen(filenaam, "r");
    return 0;
}

int main(int argc, char *argv[])
{
    char filenaam[40];
    int z;
    sprintf(filenaam, "raamwerk.in");
    z=leesFile(filenaam);
    return 0;
}
Groet,
Gerco-Kees
<><

Offline profoX

  • Lid
    • wesley
    • Lionslink
passing argument 1 of ‘fopen’ makes pointer from integer ...
« Reactie #1 Gepost op: 2008/07/01, 15:08:36 »
Als je met -Wall compileert zal je zien dat er eigenlijk nog een warning is:
test.c:6: warning: format ‘%s’ expects type ‘char *’, but argument 2 has type ‘int’
Beide waarshuwingen komen voor omdat je geen type meegeeft aan filenaam in de leesFile functie
Je zou dit moeten doen: int leesFile(char *filenaam)
Human Knowledge Belongs To The World -- Antitrust (2001)
Nederlandstalige Ubuntu documentatie van Ubuntu-NL (wiki)

Offline gercokees

  • Lid
passing argument 1 of ‘fopen’ makes pointer from integer ...
« Reactie #2 Gepost op: 2008/07/01, 15:29:32 »
cool...
-Wall geeft wel 100 meldingen.... lekker hoor! Thanx voor je uitleg, het werkt nu perfect!
Groet,
Gerco-Kees
<><

Offline profoX

  • Lid
    • wesley
    • Lionslink
passing argument 1 of ‘fopen’ makes pointer from integer ...
« Reactie #3 Gepost op: 2008/07/01, 16:51:01 »
Ik compileer altijd met "-pedantic -ansi -Wall" en ik beschouw warnings als fouten.
Ik hou er gewoon van dat iets compileert zonder fouten of waarschuwingen :)
Human Knowledge Belongs To The World -- Antitrust (2001)
Nederlandstalige Ubuntu documentatie van Ubuntu-NL (wiki)

Offline gercokees

  • Lid
passing argument 1 of ‘fopen’ makes pointer from integer ...
« Reactie #4 Gepost op: 2008/07/01, 17:23:39 »
Yep, vind ik ook, ik heb al een groot deel van de warnings geelimineerd. Je andere opties: -pedantic en -ansi zal ik morgen ook nog even uitproberen.... thanx!
Groet,
Gerco-Kees
<><

Offline gercokees

  • Lid
passing argument 1 of ‘fopen’ makes pointer from integer ...
« Reactie #5 Gepost op: 2008/07/03, 07:33:55 »
Wat doet -pedantic precies? Zorgt die voor een cross-platform check? (Gewoon uit nieuwsgierigheid...)
Groet,
Gerco-Kees
<><

Offline profoX

  • Lid
    • wesley
    • Lionslink
passing argument 1 of ‘fopen’ makes pointer from integer ...
« Reactie #6 Gepost op: 2008/07/03, 15:07:24 »
Citaat van: gercokees
Wat doet -pedantic precies? Zorgt die voor een cross-platform check? (Gewoon uit nieuwsgierigheid...)
volgens man gcc
Citaat
-pedantic
           Issue all the mandatory diagnostics listed in the C standard.  Some
           of them are left out by default, since they trigger frequently on
           harmless code.
Human Knowledge Belongs To The World -- Antitrust (2001)
Nederlandstalige Ubuntu documentatie van Ubuntu-NL (wiki)