<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<TITLE> {The S-lang C Library Reference}: SLang_push_malloced_string</TITLE>
<LINK HREF="cref-79.html" REL=next>
<LINK HREF="cref-77.html" REL=previous>
<LINK HREF="cref.html#toc78" REL=contents>
</HEAD>
<BODY>
<A HREF="cref-79.html">Next</A>
<A HREF="cref-77.html">Previous</A>
<A HREF="cref.html#toc78">Contents</A>
<HR>
<H2><A NAME="SLang_push_malloced_string"></A> <A NAME="s78">78. <B>SLang_push_malloced_string</B></A></H2>

<P>
<DL>
<DT><B> Synopsis </B><DD><P>Push a malloced string onto the stack
<DT><B> Usage </B><DD><P><CODE>int SLang_push_malloced_string (char *s);</CODE>
<DT><B> Description </B><DD><P><CODE>SLang_push_malloced_string</CODE> may be used to push a malloced
string onto the interpreter's run-time stack.  It returns zero upon
success, or <CODE>-1</CODE> upon error setting <CODE>SLang_Error</CODE> accordingly.
<DT><B> Example </B><DD><P>The following example illustrates that it is up to the calling
routine to free the string if <CODE>SLang_push_malloced_string</CODE> fails:
<BLOCKQUOTE><CODE>
<PRE>
      int push_hello (void)
      {
         char *s = malloc (6);
         if (s == NULL) return -1;
         strcpy (s, "hello");
         if (-1 == SLang_push_malloced_string (s))
           {
              free (s);
              return -1;
           }
         return 0;
      }
</PRE>
</CODE></BLOCKQUOTE>
<DT><B> Example </B><DD><P>The function <CODE>SLang_create_slstring</CODE> returns a hashed string.
Such a string may not be malloced and should not be passed to
<CODE>SLang_push_malloced_string</CODE>.
<DT><B> Notes </B><DD><P>If <CODE>s</CODE> is <CODE>NULL</CODE>, this function pushes <CODE>NULL</CODE>
(<CODE>SLANG_NULL_TYPE</CODE>) onto the stack.
<DT><B> See Also </B><DD><P><CODE>SLang_push_string, SLmake_string</CODE>
</DL>
<P>
<P>
<P>
<HR>
<A HREF="cref-79.html">Next</A>
<A HREF="cref-77.html">Previous</A>
<A HREF="cref.html#toc78">Contents</A>
</BODY>
</HTML>
