Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c > #109884
| 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> |
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
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