Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #109884

Re: What am I doing wrong here?

From DFS <nospam@dfs.com>
Newsgroups comp.lang.c
Subject Re: What am I doing wrong here?
Date 2017-05-13 11:06 -0400
Organization A noiseless patient Spider
Message-ID <of7774$f78$2@dont-email.me> (permalink)
References <of62cn$4ji$3@dont-email.me> <ennoubFn8ntU1@mid.uni-berlin.de> <of6vp1$m8g$2@dont-email.me> <87o9uwnbcl.fsf@gmail.com>

Show all headers | View raw


On 5/13/2017 9:19 AM, Gareth Owen wrote:
> DFS <nospam@dfs.com> writes:
> 
>> int main(int argc, char *argv[])
>> {
>>
>>    int i;
>>    char *randName[2];
> 
> This is an array of 2 unitialised pointers, that never get initialised.
> You want
> 
> char randname[2]; /* 2 bytes of storage for writing a letter and a NULL-byte */
> 
>>    int  randRate[8];
> 
> char randRate[3];   /* you're writing a string representation of an int,
>                         so you need a string / array of chars to write it
>                         to - 3 bytes for two digits and NULL-byte*/

>>    char *randJob[11];
> 
> char randJob[11];             /* 11 bytes of storage */


Thanks Bart.

What I intended to do from the start was not just print, but to put 
random char data into char variable(s), and random int data into int 
variable(s).  Then I could use the variables to build SQL strings or for 
other uses.

This seems to work:
--------------------------------------------------------------------
#include <stdio.h>
#include <time.h>

int main(int argc, char *argv[])
{
   int i;
   char randName[2];
   int  randRate=0;
   char randJob[11];

   char *names[] = {"A","B","C","D","E"};
   int  rates[]  = {10,20,30,40,50};
   char *jobs[]  = {"programmer","DBA","analyst","architect","contractor"};

   int namescount = sizeof(names) / sizeof(names[0]);
   int ratescount = sizeof(rates) / sizeof(rates[0]);
   int jobscount  = sizeof(jobs)  / sizeof(jobs [0]);

   srand(time(NULL));
   for(i=0;i<atoi(argv[1]);i++)
   {
	sprintf(randName, "%s", names[rand() % namescount]);
	randRate = rates[rand() % ratescount];
	sprintf(randJob , "%s", jobs [rand() % jobscount]);	
	
	printf("%s, %d, %s\n",randName, randRate, randJob);
   }

   return 0;
}
--------------------------------------------------------------------

$ tcc getrandoms.c -o getrandoms.exe

(clean compile)

$ getrandoms 10
A, 50, contractor
B, 20, architect
E, 10, programmer
C, 10, programmer
D, 10, architect
D, 50, DBA
A, 40, contractor
E, 40, DBA
B, 30, architect
B, 40, contractor


Do you see ways to improve it?  How would you write it?

Thanks

Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

What am I doing wrong here? DFS <nospam@dfs.com> - 2017-05-13 00:39 -0400
  Re: What am I doing wrong here? DFS <nospam@dfs.com> - 2017-05-13 01:03 -0400
  Re: What am I doing wrong here? jt@toerring.de (Jens Thoms Toerring) - 2017-05-13 06:55 +0000
    Re: What am I doing wrong here? DFS <nospam@dfs.com> - 2017-05-13 08:59 -0400
      Re: What am I doing wrong here? bartc <bc@freeuk.com> - 2017-05-13 14:15 +0100
      Re: What am I doing wrong here? Gareth Owen <gwowen@gmail.com> - 2017-05-13 14:19 +0100
        Re: What am I doing wrong here? DFS <nospam@dfs.com> - 2017-05-13 11:06 -0400
          Re: What am I doing wrong here? Manfred <noname@invalid.add> - 2017-05-13 17:38 +0200
            Re: What am I doing wrong here? DFS <nospam@dfs.com> - 2017-05-13 13:38 -0400
              Re: What am I doing wrong here? bartc <bc@freeuk.com> - 2017-05-13 19:03 +0100
          Re: What am I doing wrong here? bartc <bc@freeuk.com> - 2017-05-13 16:43 +0100
      Re: What am I doing wrong here? Barry Schwarz <schwarzb@dqel.com> - 2017-05-13 07:44 -0700
        Re: What am I doing wrong here? DFS <nospam@dfs.com> - 2017-05-13 11:25 -0400
          Re: What am I doing wrong here? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-05-13 19:23 +0100
    Re: What am I doing wrong here? Keith Thompson <kst-u@mib.org> - 2017-05-13 13:58 -0700
      Re: What am I doing wrong here? jt@toerring.de (Jens Thoms Toerring) - 2017-05-13 23:43 +0000
        Re: What am I doing wrong here? Tim Rentsch <txr@alumni.caltech.edu> - 2017-05-14 13:43 -0700
  Re: What am I doing wrong here? DFS <nospam@dfs.com> - 2017-05-15 20:18 -0400

csiph-web