Sponsored Content
Full Discussion: C: lenght of array
Top Forums Programming C: lenght of array Post 302808971 by tornow on Friday 17th of May 2013 07:43:56 PM
Old 05-17-2013
C: lenght of array

Doing some training code with arrays i run into the following issue: If i ask the user how long the array is supposed to be, malloc it and then ask for the values inside the array and return the list to main and assing it to a pointer to list of integers:

Code:
#include <stdio.h>
#include <stdlib.h>

int *make_list(void); 
void get_num(int *); 
void print_reverse(int *, int); 

int main(void)
{
    int *v = NULL; 

    
    v = make_list(); 

    return 0; 
}

int *make_list(void)
{
    int n = 0; 
    int i = 0; 
    int *tmp = NULL; 
    
    printf("how long? "); 
    get_num(&n); 
    tmp = (int *) malloc(n * sizeof(int)); 

    for (i = 0; i < n; i++) {
        printf("value "); 
        get_num(tmp+i); 
    }
    return tmp; 
}


void get_num(int *n)
{
    char buf[BUFSIZ]; 

    printf("number: "); 
    fgets(buf, sizeof(buf), stdin); 
    *n = atoi(buf); 
}

i lost all ways to find out how much elements that list has, right?

And the other way around: If i have a list of integers and add it as an argument to a fucntion:
print_list(v)
there is no way to find out how long the list is inside the function called print_list() ?

If both is true, would using a global variable for the length be a good solution?

Last edited by tornow; 05-17-2013 at 09:08 PM.. Reason: error with malloc
 

10 More Discussions You Might Find Interesting

1. IP Networking

how can change udp lenght?

How can change udp lenght? Hello. I have FreeBsd 4.7 and i want to change udp datagramm lenght. Where it can be? What i must do? I can rebuild my core but it is not good for me. Thanks! (4 Replies)
Discussion started by: Vvlad
4 Replies

2. UNIX for Dummies Questions & Answers

How to remove files with zero lenght

How to remove files with zero lenght with one or more commands from the same directory? Thanks. (2 Replies)
Discussion started by: GNMIKE
2 Replies

3. Shell Programming and Scripting

Can we convert a '|' file into a fixed lenght???

Hi All, I have a pipe separated flat file.But there is often some problem with the records.So is it possible to convert the '|' separated file into a fixed length file by means of some script. The file has 11 columns which means 10 pipes.Your help is appreciated. i'm using Sun OS Version... (2 Replies)
Discussion started by: kumarsaravana_s
2 Replies

4. Programming

Creating an array to hold posix thread ids: Only dynamic array works

I am facing a strange error while creating posix threads: Given below are two snippets of code, the first one works whereas the second one gives a garbage value in the output. Snippet 1 This works: -------------- int *threadids; threadids = (int *) malloc (num_threads * sizeof(int)); ... (4 Replies)
Discussion started by: kmehta
4 Replies

5. Shell Programming and Scripting

Sort based on string lenght.

I'm not familiar with find. If i use find in a certain directory i want it to show based on hierarchy. find . type d fol1 fol1/subfol1 fol1/subfol1/subfol1 fol2 fol2/subfol2 i want it to show like this fol1/subfol1/subfol1 fol1/subfol1 fol1 fol2/subfol2 fol2 do i need to use... (5 Replies)
Discussion started by: ryandegreat25
5 Replies

6. UNIX for Advanced & Expert Users

NIS username max lenght

Hi I want to know the maximum length of user name under NIS? I tried googling but it didnt help :(. If there is any command to find out this please let me know. I know on unix user name should be 8 characters long but just i want to know if i can have 9 letter user under mapped under NIS. (1 Reply)
Discussion started by: zedex
1 Replies

7. Shell Programming and Scripting

korn shell display lenght problem!!! i got stuck on this

Using the KSH, write a shell script called display_by_length, which takes an absolute pathname to a directory and displays all ordinary files in the directory ordered by their length; for each file listed, display the name of the file and its length - nothing else. Extend this script to take an... (1 Reply)
Discussion started by: babuda0059
1 Replies

8. Shell Programming and Scripting

Check input for lenght, special characters and letter case

I made menu script for users so they can run other script without going in shell just from menu. But i must control their input. These are criteria: Input must have 4 signs First two signs are always lower case letters Input shall not have some special signs just letters and numbers ... (1 Reply)
Discussion started by: waso
1 Replies

9. UNIX for Advanced & Expert Users

how to find lenght of fixed width file record?

actually i am trying to find the lenght of fixed width file record reading from teradata db but its not working can u guys help me out? code which i wrote--- colmn_lngth=`cat $RPT_FILE | awk -F~ '{print $1}'` rm $RPT_FILE while read line do result=`echo $line | wc -m` ... (4 Replies)
Discussion started by: Seshendranath
4 Replies

10. Shell Programming and Scripting

Bash 3.2 - Array / Regex - IF 3rd member in array ends in 5 digits then do somthing...

Trying to do some control flow parsing based on the index postion of an array member. Here is the pseudo code I am trying to write in (preferably in pure bash) where possible. I am thinking regex with do the trick, but need a little help. pesudo code if == ENDSINFIVEINTS ]]; then do... (4 Replies)
Discussion started by: briandanielz
4 Replies
setbuf(3s)																setbuf(3s)

Name
       setbuf, setbuffer, setlinebuf, setvbuf - assign buffering to a stream

Syntax
       #include <stdio.h>

       void setbuf(stream, buf)
       FILE *stream;
       char *buf;

       void setbuffer(stream, buf, size)
       FILE *stream;
       char *buf;
       int size;

       void setlinebuf(stream)
       FILE *stream;

       int setvbuf(stream, buf, type, size)
       FILE *stream;
       char *buf;
       int type; size_t size;

Description
       The three types of buffering available are unbuffered, block buffered, and line buffered.  When an output stream is unbuffered, information
       appears on the destination file or terminal as soon as written; when it is block buffered many characters are saved up  and  written  as  a
       block;  when  it  is line buffered characters are saved up until a new line is encountered or input is read from stdin.	The routine may be
       used to force the block out early.  Normally all files are block buffered.  For further information, see A buffer is obtained from upon the
       first  or  on  the  file.   If  the  standard stream stdout refers to a terminal it is line buffered.  The standard stream stderr is always
       unbuffered.

       The routine is used after a stream has been opened but before it is read or written.  The character array buf is used instead of  an  auto-
       matically  allocated  buffer.  If buf is the constant pointer NULL, input/output will be completely unbuffered.	A manifest constant BUFSIZ
       tells how big an array is needed:
       char buf[BUFSIZ];

       The routine, an alternate form of is used after a stream has been opened but before it is read or written.  The character array	buf  whose
       size  is  determined  by  the  size  argument  is  used instead of an automatically allocated buffer.  If buf is the constant pointer NULL,
       input/output will be completely unbuffered.

       The routine is used to change stdout or stderr from block buffered or unbuffered to line buffered.  Unlike and it can be used at  any  time
       that the file descriptor is active.

       The  routine  may  be  used  after a stream has been opened but before it is read or written.  Type determines how stream will be buffered.
       Legal values for type, defined in stdio.h are:

	_IOFBF	      causes input/output to be fully buffered.

	_IOLBF	      causes output to be line buffered; the buffer will be flushed when a new line is written, the buffer is full,  or  input	is
		      requested.

	_IONBF	      causes input/output to be completely unbuffered.

       If  buf is not the NULL pointer, the array it points to will be used for buffering, instead of an automatically allocated buffer.  The size
       specifies the size of the buffer to be used.  The constant BUFSIZ in <stdio.h> is suggested as a good  buffer  size.   If  input/output	is
       unbuffered, buf and size are ignored.

       By default, output to a terminal is line buffered and all other input/output is fully buffered.

       A  file	can be changed from unbuffered or line buffered to block buffered by using For further information, see A file can be changed from
       block buffered or line buffered to unbuffered by using followed by with a buffer argument of NULL.

Restrictions
       The standard error stream should be line buffered by default.

       The and functions are not portable to non 4.2 BSD versions of UNIX.

See Also
       malloc(3), fclose(3s), fopen(3s), fread(3s), getc(3s), printf(3s), putc(3s), puts(3s).

																	setbuf(3s)
All times are GMT -4. The time now is 08:11 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy