but u can.... =)
have u tried dynamically allocating space for recip_data?? instead of the usual static declaration?
char a[10] <-- this is static
char a[]= {'1','2','3','4'} <-- this is static with definition and declartion in one
char *a = calloc.....


have u tried it? using malloc/calloc for defining DATUM recip_data??

im not good with explanations....
but i bet the gurus like JBG could explain the solution/scenario alot better. =)



Scott wrote:

On Sat, Jan 22, 2005 at 01:46:31AM +0800, Ron Michael Khu wrote:


have u tried changing the first field of each element??
something like... replacing those char ptrs with something static?

example:

DATUM recip_data[] = {
{ "i am a constant str", NAMECTRL_LEN, make_upper }, { "i am a constant str", NAME1_LEN, make_upper },



As I recalled, the ability to HAVE dynamic pointers was one of the primary benefits of using c in the first place! Later in the file I have this routine which allocates space for each pointer in the structure:

alloc_space(r) RECORD *r;
{       register size_t i;
        register char **v;
        
        for(i=0; i<r->n; i++)
        {       if(r->data[i].len == 0 || r->data[i].len == 0xFFFF) continue;
                v = (r->data[i].var);
                if (*v == NULL)
                {       *v = (char *) calloc(1,r->data[i].len + 1);
                        memset(*v,'A'+i,r->data[i].len);
                }
        }
}

I guess i just don't understand why a "modern" compiler wants to
restrict my options in this fashion....
-
To unsubscribe from this list: send the line "unsubscribe linux-c-programming" 
in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html






-
To unsubscribe from this list: send the line "unsubscribe linux-c-programming" 
in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to