www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1997/11/13/12:46:34

From: Vic <tudor AT cam DOT org>
Newsgroups: comp.os.msdos.djgpp
Subject: Re: Program with functions
Date: Sat, 08 Nov 1997 22:13:36 -0500
Organization: Communications Accessibles Montreal, Quebec Canada
Lines: 33
Message-ID: <34652A60.2593@cam.org>
References: <199711082153 DOT QAA22413 AT delorie DOT com>
NNTP-Posting-Host: dynamicppp-231.hip.cam.org
Mime-Version: 1.0
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

sl wrote:
> char *add(char *first, char*second)
> {
>   int result;
>   result=first+second;
>   return(result);
> }
It's normal that you get problems from this code, and it has nothing to
do with what you said... in C '*' means pointer. so your function
accepts 2 pointers to ints and returns an int pointer. 
   result=first+second  does not add values, it adds pointers. You could
re-write the function as

 char add(char first, char second)
 {
return(first+second);
 }

or, if you *REALLY* want a pointer returned and 2 pointers passed, do
this: (a lot more complicated tho)

char *add(char *first, char *second)
{
  int *result;
  result=(int*)malloc(sizeof(int));
  (*result)=(*first)+(*second);
  return (result);
}


-- 
--> http://www.cam.org/~tudor <--
"Sex is not the answer.  Sex is the question.  Yes is the answer."

- Raw text -


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