LinuxQuestions.org
Download your favorite Linux distribution at LQ ISO.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Non-*NIX Forums > Programming
User Name
Password
Programming This forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.

Notices


Reply
  Search this Thread
Old 02-28-2007, 08:48 AM   #1
Pioner
LQ Newbie
 
Registered: Feb 2007
Location: Moscow
Distribution: Fedora Core 6
Posts: 12

Rep: Reputation: 0
Unhappy Variable varies without reason


Segmentation fault is occurred.
This is a part of gdb session:

Breakpoint 1, main (argc=8, argv=0x7fffffd590c8) at podgon4.c:146
146 data_init(fits_massiv,dataptr,max_mag,BINSIZE,n,n,sr[0],sr[1 ]);
(gdb) x/a fits_massiv
0x7fffff8931d0: 0x773ea0
(gdb) print dataptr
$1 = (FILE *) 0x7737e0
(gdb) s
Program received signal SIGSEGV, Segmentation fault.
0x0000000000403926 in data_init (fits_massiv=Cannot access memory at address 0x7ffffee45b68
) at read_files.c:771
771 data data_init(fitsfile **fits_massiv,FILE *dataptr,float max_mag,float bin_size,int nx,int ny,float sr1,float sr2){
(gdb) x/a fits_massiv
Cannot access memory at address 0x7ffffee45b68
(gdb) print dataptr
Cannot access memory at address 0x7ffffee45b60

We inspect the value of pointers fits_massiv and dataptr at once before call of function data_init. As you can see, all is OK. But as only program calls the function, their values changed and now we haven't access to memory pointed to by they.
How I can eliminate this problem?
Fedora Core 4 gcc 4.0.0 gdb 6.3.0.0

Note:There was no error on SuSe/gcc3.3.
 
Old 02-28-2007, 09:02 AM   #2
tuxdev
Senior Member
 
Registered: Jul 2005
Distribution: Slackware
Posts: 2,012

Rep: Reputation: 115Reputation: 115
gdb doesn't help without some code as context.
 
Old 02-28-2007, 12:39 PM   #3
Pioner
LQ Newbie
 
Registered: Feb 2007
Location: Moscow
Distribution: Fedora Core 6
Posts: 12

Original Poster
Rep: Reputation: 0
I'm sorry for my English, this is my first post on English forums!

part of file with main(), podgon4.c with line numbers:

145
146 data_init(fits_massiv,dataptr,max_mag,BINSIZE,n,n,sr[0],sr[1]);
147 return 0;


part of file with data_init(...) body with line numbers:

770
771 data data_init(fitsfile **fits_massiv,FILE *dataptr,float max_mag,float bin_size,int nx,int ny,float sr1,float sr2){

fitsfile is a structure defined in CFITSIO library:http://heasarc.gsfc.nasa.gov/fitsio/fitsio.html


The point is that fits_massiv value changes when fucntion is called, before first command from data_init body executed.
 
Old 02-28-2007, 03:56 PM   #4
tuxdev
Senior Member
 
Registered: Jul 2005
Distribution: Slackware
Posts: 2,012

Rep: Reputation: 115Reputation: 115
Make sure you're checking the values AFTER the variables have bound to the function. A lot more code would be helpful here, like the caller and the callee functions
 
Old 03-01-2007, 02:10 AM   #5
Pioner
LQ Newbie
 
Registered: Feb 2007
Location: Moscow
Distribution: Fedora Core 6
Posts: 12

Original Poster
Rep: Reputation: 0
It is not a pity to me to give you more code.

This is main ( part after data_init was adandoned):

Code:
int main(int argc, char*argv[]){
if(argc!=8){
 fprintf(stderr,"Usage: podgon4 isolist datafile max_mag n znach outfile sr1,sr2\n");
 fprintf(stderr," isolist - isochrone file list \n max_mag - maximum magnitude\n");
 fprintf(stderr," n - the number of points in which range will be divided\n znach - znachenie, po kotoromu ishutsa regionu\n");
 fprintf(stderr," outfile - output file, - represents standart output\n");
 fprintf(stderr," sr1,sr2 - radii in arcminutes, between which stars for weights will be used\n");
 return EX_USAGE;
}
float f_cur,znach;
char isolist_file[256],isofits_file[256];
char buf_isodan[256],buf_fits[256], prefix[256];
char data_name[256], *tmpptr,datafile_name[256],*vhodfile;
float max_mag,x_te,y_te,iso_t,t_te,outznach;
float **f[NUM_STEP_T];
data glavdata;
//data*data_str_ukaz;
int i, n=0,x_sch,y_sch,t_sch;
int status=0;
int tindex;
float sr[2];
sscanf(argv[7],"%f,%f",sr,sr+1);
fitsfile *fits_massiv[NUM_STEP_T];
FILE *dataptr,*fp,*outfile=NULL;
Region* mas=NULL;

int a=10;
int* pointer=&a;

strcpy(isolist_file, argv[1]);
strcpy(data_name, argv[2]);
max_mag=atof(argv[3]);
//max_rad=atof(argv[3]);
znach=atof(argv[5]);
n=atoi(argv[4]);
vhodfile=argv[6];
if(!n) n=10;
if(!znach) znach=1.4;

outznach=-2;// for raz4 kriteriy

if(strcmp(vhodfile,"-")){
 outfile=fopen(vhodfile,"a");
 if(!outfile){
  fprintf(stderr,"Unable to open for appending file `%s'. Output will be written to stdout\n",vhodfile);
  outfile=stdout;
 }
}
else{
 outfile=stdout;
}

prefix[0]=0;
tmpptr=strrchr(isolist_file,'/');
if (tmpptr!=0){
 memcpy(prefix,isolist_file,tmpptr-isolist_file+1);
 prefix[tmpptr-isolist_file+1]=0;
}

tmpptr=strrchr(data_name,'/');
if (tmpptr!=0){
 strcpy(datafile_name,tmpptr+1);
}
else{
 strcpy(datafile_name,data_name);
}

i=0;
dataptr=fopen(data_name, "r");
if(!dataptr){
 fprintf(stderr,"Unable to open data file %s\n",data_name);
 return EX_NOINPUT;
}

fp=fopen(isolist_file,"r");
if(!fp){
 fprintf(stderr,"Unable to open data file '%s'\n",isolist_file);
 return EX_NOINPUT;
}
for(i=0;i<NUM_STEP_T && !feof(fp);i++){
 fscanf(fp,"log(t)=%f %s %s\n",&iso_t,buf_isodan,buf_fits);
// fprintf(stderr,"iso_t=%f itot=%f i=%d\n",iso_t,itot(i),i);
 if(iso_t!=itot(i)){
  fprintf(stderr,
  "Wrong order of isochrones in isolist file '%s'.\n Isochrones must begin from %f with step %f, theirs number is %d\n",isolist_file,LOW_T,STEP_T,NUM_STEP_T);
  return EX_DATAERR;
 }
 sprintf(isofits_file,"%s%s",prefix,buf_fits);
 fits_open_file(fits_massiv+i,isofits_file,READONLY,&status);
// fprintf(stderr,"after fits_open_file\n");
 FERR;
}
fclose(fp);

data_init(fits_massiv,dataptr,max_mag,BINSIZE,n,n,sr[0],sr[1]);
return 0;
}
This is function which is called:

Code:
data data_init(fitsfile **fits_massiv,FILE *dataptr,float max_mag,float bin_size,int nx,int ny,float sr1,float sr2){
 data vozvr;
 int i,j,n_ci,n_mag,status=0;
 long size[2];
// float mag[MAXNUM],ci[MAXNUM]
 float rad[MAXNUM];
 float min_mag,step_mag,min_ci,step_ci;
 float svmin,svmax;
 char buf[128];
 vozvr.nsvert=NSVERT;
 vozvr.max_mag=max_mag;
 vozvr.bin_size=bin_size;
 fits_get_img_size(fits_massiv[0],2,size,&status);FERR
 vozvr.n_ci=size[0]*8;
 vozvr.n_mag=size[1];
 fits_read_key(fits_massiv[0],TFLOAT,"MIN_CI",&vozvr.min_ci,NULL,&status);FERR
 fits_read_key(fits_massiv[0],TFLOAT,"MIN_MAG",&vozvr.min_mag,NULL,&status);FERR
 fits_read_key(fits_massiv[0],TFLOAT,"STEP_CI",&vozvr.step_ci,NULL,&status);FERR
 fits_read_key(fits_massiv[0],TFLOAT,"STEP_MAG",&vozvr.step_mag,NULL,&status);FERR
 for(j=0;j<NUM_STEP_T;j++){
  read_arr(fits_massiv[j],vozvr.fits_data+j,&min_ci,&step_ci,
            &n_ci,&min_mag,&step_mag,&n_mag);
  if(n_ci!=vozvr.n_ci || n_mag!=vozvr.n_mag || 
     step_ci!=vozvr.step_ci || step_mag!=vozvr.step_mag || 
     min_ci!=vozvr.min_ci || min_mag!=vozvr.min_mag){
   fprintf(stderr,
     "In vozvr: min_ci=%f; step_ci=%f; n_ci=%d; min_mag=%f; step_mag=%f; n_mag=%d;\n",
      vozvr.min_ci,vozvr.step_ci,vozvr.n_ci,vozvr.min_mag,vozvr.step_mag,vozvr.n_mag);
   fprintf(stderr,
     "In  fits: min_ci=%f; step_ci=%f; n_ci=%d; min_mag=%f; step_mag=%f; n_mag=%d;; j=%d\n",
        min_ci, step_ci, n_ci,min_mag,step_mag,n_mag,j);
   fprintf(stderr,"There is difference\n");                 
  }
 }
 for(i=0,j=0;!feof(dataptr);){
  fgets(buf, 128, dataptr);
  if ( 3==sscanf(buf, "%f %f %f",rad + i,vozvr.mag + i,vozvr.ci + i)){
   if(rad[i]>=sr1 && rad[i]<=sr2){
    vozvr.svert_mag[j]=vozvr.mag[i];
    vozvr.svert_ci[j]=vozvr.ci[i];
    j++;
   } 
   if(vozvr.mag[i] < max_mag){
    vozvr.mag1[i]=vozvr.mag[i]/vozvr.step_mag;
    vozvr.ci1[i]=vozvr.ci[i]/vozvr.step_ci;
    vozvr.rad1[i]=rad[i]/bin_size;
    i++;
   }   
  }
 }
 V_NACH(dataptr);
 vozvr.nstars=i;
 vozvr.svert_nstars=j;

 vozvr.grani=define_ranges(vozvr.nstars,vozvr.mag,vozvr.ci);
 (vozvr.grani).ny=ny;(vozvr.grani).nx=nx;
 vozvr.grani_kar=def_ranges_pict(vozvr.nstars,vozvr.mag,vozvr.ci);
 if(svert_data(&vozvr,0.2,0.2,&svmin,&svmax)) fprintf(stderr,"Null determinant;  "); 
 fprintf(stderr,"svmin=%f  svmax=%f\n",svmin,svmax);
 
 return vozvr;
}

This is part of header:

Code:
#define MAXNUM 200000
#define NBINS 20
#define BINSIZE 1.5
#define NSVERT 200
#define V_NACH(fptr) fseek(fptr,0,0);
#define FERR fits_report_error(stderr, status);
 
Old 03-01-2007, 02:17 AM   #6
Pioner
LQ Newbie
 
Registered: Feb 2007
Location: Moscow
Distribution: Fedora Core 6
Posts: 12

Original Poster
Rep: Reputation: 0
Quote:
Originally Posted by tuxdev
Make sure you're checking the values AFTER the variables have bound to the function.

Quote:
This is a part of gdb session:

Breakpoint 1, main (argc=8, argv=0x7fffffd590c8) at podgon4.c:146
146 data_init(fits_massiv,dataptr,max_mag,BINSIZE,n,n,sr[0],sr[1 ]);
(gdb) x/a fits_massiv
0x7fffff8931d0: 0x773ea0
(gdb) print dataptr
$1 = (FILE *) 0x7737e0
(gdb) s
Program received signal SIGSEGV, Segmentation fault.
0x0000000000403926 in data_init (fits_massiv=Cannot access memory at address 0x7ffffee45b68
) at read_files.c:771
771 data data_init(fitsfile **fits_massiv,FILE *dataptr,float max_mag,float bin_size,int nx,int ny,float sr1,float sr2){
(gdb) x/a fits_massiv
Cannot access memory at address 0x7ffffee45b68
(gdb) print dataptr
Cannot access memory at address 0x7ffffee45b60
Breakpoint 1 is in main, and program receive signal 'SIGSEGV, Segmentation fault.' in 'data_init(', in other file.
 
Old 03-01-2007, 08:32 AM   #7
tuxdev
Senior Member
 
Registered: Jul 2005
Distribution: Slackware
Posts: 2,012

Rep: Reputation: 115Reputation: 115
Hmm, what about a back trace when it segfaults? Also, step might be running the whole function if it can't find a source line.
 
Old 03-01-2007, 11:23 AM   #8
Pioner
LQ Newbie
 
Registered: Feb 2007
Location: Moscow
Distribution: Fedora Core 6
Posts: 12

Original Poster
Rep: Reputation: 0
Code:
Breakpoint 1, main (argc=8, argv=0x7ffffffa6b58) at podgon4.c:144
144     glavdata=data_init(fits_massiv,dataptr,max_mag,BINSIZE,n,n,sr[0],sr[1]);
(gdb) x/a fits_massiv
0x7fffffae0c50: 0x774ea0
(gdb) print dataptr
$1 = (FILE *) 0x7747e0
(gdb) s

Program received signal SIGSEGV, Segmentation fault.
0x0000000000403f51 in data_init (fits_massiv=Cannot access memory at address 0x7fffff093598
) at read_files.c:776
776     data data_init(fitsfile **fits_massiv,FILE *dataptr,float max_mag,float bin_size,int nx,int ny,float sr1,float sr2){
(gdb) x/a fits_massiv
Cannot access memory at address 0x7fffff093598
(gdb) print dataptr
Cannot access memory at address 0x7fffff093590
(gdb) bt
#0  0x0000000000403f51 in data_init (fits_massiv=Cannot access memory at address 0x7fffff093598
) at read_files.c:776
#1  0x0000000000400840 in main (argc=8, argv=0x7ffffffa6b58) at podgon4.c:144
As you can see, data_init call is the first call of my own, not library function.

Quote:
Also, step might be running the whole function if it can't find a source line.

It should find line information!
I compiled all files with -g -ggdb keys.

Following code demonstrates it:

Code:
(gdb) break 776
Breakpoint 2 at 0x403f46: file read_files.c, line 776.
(gdb) run

Breakpoint 1, main (argc=8, argv=0x7fffffedd398) at podgon4.c:144
144     glavdata=data_init(fits_massiv,dataptr,max_mag,BINSIZE,n,n,sr[0],sr[1]);
(gdb) s

Breakpoint 2, data_init (fits_massiv=0x0, dataptr=0x0, max_mag=0, bin_size=0, nx=0, ny=0, sr1=0, sr2=0) at read_files.c:776
776     data data_init(fitsfile **fits_massiv,FILE *dataptr,float max_mag,float bin_size,int nx,int ny,float sr1,float sr2){
(gdb) s

Program received signal SIGSEGV, Segmentation fault.
0x0000000000403f51 in data_init (fits_massiv=Cannot access memory at address 0x7ffffefc9dd8
) at read_files.c:776
776     data data_init(fitsfile **fits_massiv,FILE *dataptr,float max_mag,float bin_size,int nx,int ny,float sr1,float sr2){
Breakpoint 1 in podgon4.c hits, and then breakpoint 2 in read_files.c, and then program receive SIGSEGV. So we can conclude that read_files.o has debugging symbols.

Last edited by Pioner; 03-01-2007 at 11:41 AM.
 
Old 03-01-2007, 01:30 PM   #9
tuxdev
Senior Member
 
Registered: Jul 2005
Distribution: Slackware
Posts: 2,012

Rep: Reputation: 115Reputation: 115
Could you mark line 776 in read_files.c?

Anyway, there seems to be some missing debugging stuff. For example, here's some output of a project I've got on a breakpoint.
Code:
(gdb) b parse
Breakpoint 1 at 0x8048de4: file parser.c, line 43.
(gdb) r
Starting program: /home/tgoya/csc357/smake/smake
Reading symbols from shared object read from target memory...done.
Loaded system supplied DSO at 0x431000

Breakpoint 1, parse (table=0xb7e0b008, filename=0x804964f "Smakefile")
    at parser.c:43
43         FILE *file=fopen(filename,"rb");
(gdb) bt
#0  parse (table=0xb7e0b008, filename=0x804964f "Smakefile") at parser.c:43
#1  0x080489c9 in main (argc=1, argv=0xbfec9c44) at smake.c:48
notice the lack of a line of code when your breakpoints break. I used "-g -Wall for this project"
 
Old 03-02-2007, 01:43 PM   #10
Pioner
LQ Newbie
 
Registered: Feb 2007
Location: Moscow
Distribution: Fedora Core 6
Posts: 12

Original Poster
Rep: Reputation: 0
Quote:
Could you mark line 776 in read_files.c?

I have already marked read_files.c:776 (if you mean mark is 'put breakpoint'):

Quote:
Code:
(gdb) break 776
Breakpoint 2 at 0x403f46: file read_files.c, line 776.
(gdb) run

Breakpoint 1, main (argc=8, argv=0x7fffffedd398) at podgon4.c:144
144     glavdata=data_init(fits_massiv,dataptr,max_mag,BINSIZE,n,n,sr[0],sr[1]);
(gdb) s

Breakpoint 2, data_init (fits_massiv=0x0, dataptr=0x0, max_mag=0, bin_size=0, nx=0, ny=0, sr1=0, sr2=0) at read_files.c:776
776     data data_init(fitsfile **fits_massiv,FILE *dataptr,float max_mag,float bin_size,int nx,int ny,float sr1,float sr2){
(gdb) s

Program received signal SIGSEGV, Segmentation fault.
0x0000000000403f51 in data_init (fits_massiv=Cannot access memory at address 0x7ffffefc9dd8
) at read_files.c:776
776     data data_init(fitsfile **fits_massiv,FILE *dataptr,float max_mag,float bin_size,int nx,int ny,float sr1,float sr2){
If I mark function data_init, I will receive segfault before breakpoint hits:

Code:
(gdb) break 143
Breakpoint 1 at 0x4007d0: file podgon4.c, line 143.
(gdb) break data_init
Breakpoint 2 at 0x4039df: file read_files.c, line 777.
(gdb) run
Starting program: /home/pioner/auto/podgon4 /home/pioner/iso/make_mask/isochrones/iso.list /home/pioner/iso/make_mask/NGC6819.dat 16 30 -2 results_4raz4/NGC6819.dat_proba30 10,15

Breakpoint 1, main (argc=8, argv=0x7fffffef7f98) at podgon4.c:144
144     glavdata=data_init(fits_massiv,dataptr,max_mag,BINSIZE,n,n,sr[0],sr[1]);
(gdb) s

Program received signal SIGSEGV, Segmentation fault.
0x000000000040399d in data_init (fits_massiv=Cannot access memory at address 0x7ffffefe4a68
) at read_files.c:776
776     data data_init(fitsfile **fits_massiv,FILE *dataptr,float max_mag,float bin_size,int nx,int ny,float sr1,float sr2){
In this case breakpoint doesn't hit, because it is on line, next to line with function definition.
In previous example I put 'fprintf(stderr,"fdkjjjjjjjjjjjjjjjj\n");' at the beginning of 777 line. If s makes run whole fucntion, 'fdkjjjjjjjjjjjjjjjj' will appear on the screen. But 'fdkjjjjjjjjjjjjjjjj' haven't appeared, so body of the function was not executed.

Quote:
notice the lack of a line of code when your breakpoints break. I used "-g -Wall for this project"
There is no lack, this line is:

Quote:
Code:
776     data data_init(fitsfile **fits_massiv,FILE *dataptr,float max_mag,float bin_size,int nx,int ny,float sr1,float sr2){
You have marked function, i. e. line below it, and I have marked exactly line, on which function begins.
 
Old 03-02-2007, 04:03 PM   #11
tuxdev
Senior Member
 
Registered: Jul 2005
Distribution: Slackware
Posts: 2,012

Rep: Reputation: 115Reputation: 115
This is very strange. Try printing sr[0] and sr[1] when it crashes.
 
Old 03-02-2007, 11:29 PM   #12
graemef
Senior Member
 
Registered: Nov 2005
Location: Hanoi
Distribution: Fedora 13, Ubuntu 10.04
Posts: 2,379

Rep: Reputation: 148Reputation: 148
Quote:
float **f[NUM_STEP_T];
What is the sizeof NUM_STEP_T, has your system run out of memory because NUM_STEP_T is too large?
 
Old 03-03-2007, 07:16 AM   #13
Pioner
LQ Newbie
 
Registered: Feb 2007
Location: Moscow
Distribution: Fedora Core 6
Posts: 12

Original Poster
Rep: Reputation: 0
Code:
(gdb) break 143
Breakpoint 1 at 0x4007d3: file podgon4.c, line 143.
(gdb) break read_files.c:776
Breakpoint 2 at 0x4039ae: file read_files.c, line 776.
(gdb) break data_init
Breakpoint 3 at 0x4039fb: file read_files.c, line 777.
(gdb) run
Starting program: /home/pioner/auto/podgon4 /home/pioner/iso/make_mask/isochrones/iso.list /home/pioner/iso/make_mask/NGC6819.dat 16 30 -2 results_4raz4/NGC6819.dat_proba30 10,15

Breakpoint 1, main (argc=8, argv=0x7ffffff5bf28) at podgon4.c:144
144     glavdata=data_init(fits_massiv,dataptr,max_mag,BINSIZE,n,n,sr[0],sr[1]);
(gdb) print sr[0]
$1 = 10
(gdb) print sr[1]
$2 = 15
(gdb) s

Breakpoint 2, data_init (fits_massiv=0x0, dataptr=0x0, max_mag=0, bin_size=0, nx=0, ny=0, sr1=0, sr2=0)
    at read_files.c:776
776     data data_init(fitsfile **fits_massiv,FILE *dataptr,float max_mag,float bin_size,int nx,int ny,float sr1,float sr2){
(gdb) print sr[0]
No symbol "sr" in current context.
(gdb) print sr1
$3 = 0
(gdb) print sr2
$4 = 0
(gdb) s

Program received signal SIGSEGV, Segmentation fault.
0x00000000004039b9 in data_init (fits_massiv=Cannot access memory at address 0x7fffff0493a8
) at read_files.c:776
776     data data_init(fitsfile **fits_massiv,FILE *dataptr,float max_mag,float bin_size,int nx,int ny,float sr1,float sr2){
(gdb) print sr2
Cannot access memory at address 0x7fffff049388
(gdb) print sr1
Cannot access memory at address 0x7fffff04938c
(gdb) x/a fits_massiv
Cannot access memory at address 0x7fffff0493a8
(gdb) print dataptr
Cannot access memory at address 0x7fffff0493a0
(gdb) print max_mag
Cannot access memory at address 0x7fffff04939c
(gdb) print bin_size
Cannot access memory at address 0x7fffff049398
(gdb) print nx
Cannot access memory at address 0x7fffff049394
(gdb) print ny
Cannot access memory at address 0x7fffff049390
(gdb) print sr1
Cannot access memory at address 0x7fffff04938c
(gdb) print sr2
Cannot access memory at address 0x7fffff049388
(gdb)
None of function arguments are available!

Quote:
What is the sizeof NUM_STEP_T, has your system run out of memory because NUM_STEP_T is too large?
NUM_STEP_T is macro:

Code:
#define NUM_STEP_T 73
In previous example I changed it to 10, but the result was the same.
 
Old 03-04-2007, 07:46 AM   #14
Pioner
LQ Newbie
 
Registered: Feb 2007
Location: Moscow
Distribution: Fedora Core 6
Posts: 12

Original Poster
Rep: Reputation: 0
Smile Solution.

Thanks everyone who has answered me.

Quote:
What is the sizeof NUM_STEP_T, has your system run out of memory because NUM_STEP_T is too large?
graemef was right, system has run out of memory. Sizeof(data)=5001224, and data_init returns struct data. Now I declare

Code:
data glavdata;
in main, and pass to the data_init address of glavdata. data_init now returns void. Error has diappeared. I will work to make sizeof(data) smaller.
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
setting a variable variable in a script... this works, but could it be more elegant? pwc101 Programming 3 08-18-2006 11:23 AM
Scripting: accessing a variable stored in a variable? tomolesonjr Linux - Newbie 5 05-05-2006 08:47 PM
Retrieving from a variable whose name is inside a variable. thekillerbean Linux - General 4 02-09-2006 08:50 PM
C++: difference between static method variable and static class variable? Thinking Programming 3 01-16-2006 10:08 AM
How to get 'Window' variable from a 'Widget' variable bordel Programming 0 11-19-2003 03:19 AM

LinuxQuestions.org > Forums > Non-*NIX Forums > Programming

All times are GMT -5. The time now is 03:31 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration