08-12-2008
Passing by value a char array
Hi
I am passing or want to pass value of a char array, so that even thoug the called routine is changing the values the calling function should not see the values changed, meaning only copy should be passed
Here is the program
#include<iostream.h>
#include<string.h>
void f(char a[]);
int main()
{
char ch[20]="This is a";
f(ch);
cout<<"\nCH= "<<ch;
}
void f(char b[])
{
b[0]='A';
cout<<b;
}
$ ./a.out
Ahis is a
CH= Ahis is a$
Is there any thing wrong i am doing?
REgards
rkraj
9 More Discussions You Might Find Interesting
1. Programming
hello
i have a program in C (Unix - SOlaris5.7), and i have the next question:
i have a lot of char variable, and i want store their values in a char array. The problem is what i donīt know how to put the char variable's value into the array, and i don`t know how to define the array
please... (4 Replies)
Discussion started by: DebianJ
4 Replies
2. Programming
hi,
I have variable like,
char keyword = "TRANSPARENCY ";
while passing this variable to some function, first character of variable becomes null, but rest of characters still exist. Why this happens or something wrong with declaration. Their is no error while compiling & running... (2 Replies)
Discussion started by: avadhani
2 Replies
3. Programming
i have to store a data more than 100000.
i don't know the size of the data whether it may be 100000 or 1000000.
so how can i define variable size;
example
char abc;
but i don't know the size so how can i give array size??
in one sentence
how can i give the array size dynamically so that i... (6 Replies)
Discussion started by: phani_sree
6 Replies
4. Programming
I'm doing some coding in C++
Want to have a long empty string like below
const char ModMisfit :: DelStr = "\r \r";
However due to the long blank the line is very long. Is there any way to avoid this and keep the... (5 Replies)
Discussion started by: kristinu
5 Replies
5. Programming
i have an array like
#define NUM 8
....
new_socket_fd = accept(socket_fd, (struct sockaddr *) &cli_addr, &client_length);
char *items = {"one", "two", "three", "four", "five", "six", "seven", "eight"};
char *item_name_length = {"3", "3", "5", "4", "4", "3", "5", "5"};
... (1 Reply)
Discussion started by: omega666
1 Replies
6. Programming
Hi All
I want to take a Hexadecimal number as input and i want to find lenth of the input and pass it to char s ( char s ). I have a program to convert hexadecial to binary but it is taking limited input but i want to return binary number based on input. How? (1 Reply)
Discussion started by: atharalikhan
1 Replies
7. Programming
cat int.c
int main() {
unsigned char wwn;
wwn=50;
wwn=00;
wwn=53;
wwn=30;
wwn=08;
wwn=09;
wwn=82;
wwn=17;
printf("WWN: %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x\n ",
wwn,
wwn,
wwn,
wwn,
wwn,... (8 Replies)
Discussion started by: powyama
8 Replies
8. Shell Programming and Scripting
Hi folks,
I am self-learning as I can
I have a script that has read a file into an array.
I can read out each line in the array with the code:
for INDEX in {0..$LENGTH} ## $LENGTH was determined at the read in
do
echo "${data}"
done
What I need to do is test the first char... (2 Replies)
Discussion started by: Marc G
2 Replies
9. Programming
I want to return a char array to the main() function, but its returning garbage value.
#include<stdio.h>
//#include<conio.h>
#include<string.h>
char* strtrmm();
int main()
{
char str1,c1;
printf("\n Enter the string:");
gets(str1);
//strtrmm(str1);
printf("%s",strtrmm(str1));... (2 Replies)
Discussion started by: zinat
2 Replies
LEARN ABOUT SUSE
funtablerowget
funtablerowget(3) SAORD Documentation funtablerowget(3)
NAME
FunTableRowGet - get Funtools rows
SYNOPSIS
#include <funtools.h>
void *FunTableRowGet(Fun fun, void *rows, int maxrow, char *plist,
int *nrow)
DESCRIPTION
The FunTableRowGet() routine retrieves rows from a Funtools binary table or raw event file, and places the values of columns selected by
FunColumnSelect() into an array of user structs. Selected column values are automatically converted to the specified user data type (and
to native data format) as necessary.
The first argument is the Fun handle associated with this row data. The second rows argument is the array of user structs into which the
selected columns will be stored. If NULL is passed, the routine will automatically allocate space for this array. (This includes proper
allocation of pointers within each struct, if the "@" pointer type is used in the selection of columns. Note that if you pass NULL in the
second argument, you should free this space using the standard free() system call when you are finished with the array of rows.) The third
maxrow argument specifies the maximum number of rows to be returned. Thus, if rows is allocated by the user, it should be at least of size
maxrow*sizeof(evstruct).
The fourth plist argument is a param list string. Currently, the keyword/value pair "mask=transparent" is supported in the plist argument.
If this string is passed in the call's plist argument, then all rows are passed back to the user (instead of just rows passing the filter).
This is only useful when FunColumnSelect() also is used to specify "$region" as a column to return for each row. In such a case, rows
found within a region have a returned region value greater than 0 (corresponding to the region id of the region in which they are located),
rows passing the filter but not in a region have region value of -1, and rows not passing any filter have region value of 0. Thus, using
"mask=transparent" and the returned region value, a program can process all rows and decide on an action based on whether a given row
passed the filter or not.
The final argument is a pointer to an int variable that will return the actual number of rows returned. The routine returns a pointer to
the array of stored rows, or NULL if there was an error. (This pointer will be the same as the second argument, if the latter is
non-NULL).
/* get rows -- let routine allocate the row array */
while( (buf = (Ev)FunTableRowGet(fun, NULL, MAXROW, NULL, &got)) ){
/* process all rows */
for(i=0; i<got; i++){
/* point to the i'th row */
ev = buf+i;
/* rearrange some values. etc. */
ev->energy = (ev->pi+ev->pha)/2.0;
ev->pha = -ev->pha;
ev->pi = -ev->pi;
}
/* write out this batch of rows */
FunTableRowPut(fun2, buf, got, 0, NULL);
/* free row data */
if( buf ) free(buf);
}
As shown above, successive calls to FunTableRowGet() will return the next set of rows from the input file until all rows have been read,
i.e., the routine behaves like sequential Unix I/O calls such as fread(). See evmerge example code for a more complete example.
Note that FunTableRowGet() also can be called as FunEventsGet(), for backward compatibility.
SEE ALSO
See funtools(7) for a list of Funtools help pages
version 1.4.2 January 2, 2008 funtablerowget(3)