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
