well, I have 2 years in PHP scripting and im starting lo learn C. I
have started to write an asterisk application to try to apply what ive
read from C. But im getting stuck with a malloc call. Im not even sure
if is the right path, but since i Need a dynamic string, I guess malloc
is the way to go. The application is supposed to display channel
debugging information, such channel vars. Im having troubles creating
the string that will display all the channel vars and its values. I
have this:<br>
<br>



<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="Generator" content="Kate, the KDE Advanced Text Editor">

<pre><span style="color: rgb(128, 0, 0);">static</span> <span style="color: rgb(128, 0, 0);">int</span> dumpchan_exec(<b>struct</b> ast_channel *chan, <span style="color: rgb(128, 0, 0);">void</span> *data)
{
        <span style="color: rgb(128, 0, 0);">int</span> res=<span style="color: rgb(0, 0, 255);">0</span>;
        <b>struct</b> localuser *u;
        LOCAL_USER_ADD(u);

        <span style="color: rgb(128, 128, 128);"><i>/* dumpchan exec stuff */</i></span>
        <b>struct</b> ast_var_t *current_var;
        <span style="color: rgb(128, 0, 0);">char</span> *vars_buffer = <span style="color: rgb(221, 0, 0);">&quot;Channel Variables: </span><span style="color: rgb(255, 0, 255);">\n\t</span><span style="color: rgb(221, 0, 0);">
 &quot;</span>;
        ast_verbose(<span style="color: rgb(221, 0, 0);">&quot;starting bucle...</span><span style="color: rgb(255, 0, 255);">\n</span><span style="color: rgb(221, 0, 0);">&quot;</span>);
        AST_LIST_TRAVERSE (&amp;chan-&gt;varshead, current_var, entries) {
                <span style="color: rgb(128, 0, 0);">char</span> *variable_name    = ast_var_name(current_var);
                <span style="color: rgb(128, 0, 0);">char</span> *variable_value   = ast_var_value(current_var);
                size_t new_string_size = ( strlen(variable_name)  +
                                           strlen(variable_value) +
                                           strlen(vars_buffer) ) * <b>sizeof</b>(<span style="color: rgb(128, 0, 0);">char</span>);
                new_string_size       += <span style="color: rgb(0, 0, 255);">5</span>; <span style="color: rgb(128, 128, 128);"><i>/* 5 chars, the ending null char, a tab, 2 spaces and : */</i></span>
                ast_verbose(<span style="color: rgb(221, 0, 0);">&quot;Allocating %d bytes of  memory...</span><span style="color: rgb(255, 0, 255);">\n</span><span style="color: rgb(221, 0, 0);">&quot;</span>, (<span style="color: rgb(128, 0, 0);">
int</span>)new_string_size);
                <span style="color: rgb(128, 0, 0);">char</span> *temp_vars        = (<span style="color: rgb(128, 0, 0);">char</span> *)malloc(new_string_size);
                ast_verbose(<span style="color: rgb(221, 0, 0);">&quot;Allocated!&quot;</span>);
                <b>if</b> ( !temp_vars ) {
                        ast_log(LOG_ERROR, <span style="color: rgb(221, 0, 0);">&quot;Out of memory.</span><span style="color: rgb(255, 0, 255);">\n</span><span style="color: rgb(221, 0, 0);">&quot;</span>);
                        <b>return</b> -<span style="color: rgb(0, 0, 255);">1</span>;
                }</pre>............ more code<br clear="all"><br>-- <br>
the application just dies when the malloc() function is called. Any help and suggestions will be appreciated.<br>
<br>
Best Regards.<br>
<br>
&quot;Su nombre es GNU/Linux, no solamente Linux, mas info en <a href="http://www.gnu.org">http://www.gnu.org</a>&quot;<br>
the<br>
<br>
<br>