delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1999/12/11/09:18:08

From: "Steve Chalkley" <sjc AT conceptii DOT co DOT uk>
Newsgroups: comp.os.msdos.djgpp
Subject: Re: pointers
Date: Sat, 11 Dec 1999 12:57:45 -0000
Organization: NTL Internet News Service
Lines: 54
Message-ID: <82thn7$ef5$1@nclient9-gui.server.ntli.net>
References: <384CD097 DOT B95E1019 AT dtn DOT ntl DOT com>
NNTP-Posting-Host: p-75-belinda.tch.cableol.net
X-Trace: nclient9-gui.server.ntli.net 944917031 14821 194.168.10.75 (11 Dec 1999 12:57:11 GMT)
X-Complaints-To: abuse AT net DOT ntl DOT com
NNTP-Posting-Date: 11 Dec 1999 12:57:11 GMT
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 5.00.2615.200
X-Mimeole: Produced By Microsoft MimeOLE V5.00.2615.200
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

You are actually passing the "address of a pointer to char" to the function
file_reads(etc). In the function declaration use char ** i.e.
    void file_reads(int handle,int length,char **dummy)

After that you will need to examine each of your references to dummy to make
sure you are accessing the right data. This is left as an exercise for the
reader ;-)

Regards


Steve Chalkley


Steven Watson <steven DOT watson AT dtn DOT ntl DOT com> wrote in message
news:384CD097 DOT B95E1019 AT dtn DOT ntl DOT com...
> Hi Everyone
>
> Is it possible someone can tell me how this code can be written to
> change the pointer sent to it
> in pow! using a VAR it will make a copy so the value can be changed but
> I am unable to figure it out in C?
>
> int  main(void)
> char *string;
>   file_reads(1,5,&string);
>     printf("%s \n",string);
> return 0;
> }
> function from include file:
>
> void file_reads(int handle,int length,char *dummy)
> {
>
>
>      if ((dummy=(char *)malloc(length+1))==NULL){
>         puts("Error code here");
>         exit(1);
>      }
>
>
> if((fread(dummy,sizeof(char),length,filehandle[handle]))!=length){
>             puts("Put error code here");
>             exit(1);
>          }
>                 *(dummy+length)=0x00;
>                printf("%s\n",dummy);//it prints here fine as expected.
> return;
> }
>
> thanks in advance
> Steven Watson


- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019