02-14-2008
CHAR Array - stuffed with values - with more size than it holds
Hi All
I am simulating a problem in the production where i faced a situation.
Please find the following example program which i simulated.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char str1[20];
char str2[20];
double t1=0.0;
double output_value=888.00;
double count=0.0;
memset(str1,0x00,20);
memset(str2,0x00,20);
char output_str[20];
char output_str1[20];
memset(output_str,0x00,20);
memset(output_str1,0x00,20);
for(int i=0;i<50;i++) (Purposely specifying as 50 and not 20 as per the variable)
{
count=count+1.0;
sprintf(output_str, "%12.2f", count); (When str1 is exhausted i.e after 20th byte it is taking the value from str2 mentioned below)
strcat(str1,output_str);
strcat(str1, " ");
printf("The string length of str1=%d\n",strlen(str1));
if (i != 0)
output_value= 1 + output_value;
sprintf(output_str1, "%12.2f", output_value);
strcat(str2, output_str1);
strcat(str2, " ");
printf("The str1 has the value =%s\n\n",str1);
printf("The str2 has the value =%s\n\n",str2);
}
printf("\n\n\n The output line 3=%s\n",str1);
}
Please let me know if str1 is stuffed more than what it can hold, should it take the values from str2 ? as arrays are stored by contiguous memory location.
10 More Discussions You Might Find Interesting
1. Programming
hi
i want to write a simple io-benchmark for raw devices, especially for
harddisks, vx-volumes and md-volumes on solaris.
is there a unix system call to get the size of the device? the 'stat' system call
reports the size for regaular files but not for block or devices. On Solaris the... (2 Replies)
Discussion started by: guenter
2 Replies
2. 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
3. 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
4. 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
5. Shell Programming and Scripting
Hi All,
I'm writing a nagios check that will see if our ldap servers are in sync...
I got the status data into a nested array, I would like to search key of each array and if "OK" is NOT present, echo other key=>values in the current array to a variable
so...eg...let take the single array... (1 Reply)
Discussion started by: zeekblack
1 Replies
6. 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
7. 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
8. 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
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
10. UNIX for Advanced & Expert Users
hi,
I am trying to get the FileType using the File command. I have one file, which holds Group separator along with ASCII character.
It's a Text file.
But when I ran the File command the FileType is coming as "data".
It should be "ASCII, Text file".
Is the latest version of File... (6 Replies)
Discussion started by: Arpitak29
6 Replies
LEARN ABOUT CENTOS
dlasq2
dlasq2.f(3) LAPACK dlasq2.f(3)
NAME
dlasq2.f -
SYNOPSIS
Functions/Subroutines
subroutine dlasq2 (N, Z, INFO)
DLASQ2 computes all the eigenvalues of the symmetric positive definite tridiagonal matrix associated with the qd Array Z to high
relative accuracy. Used by sbdsqr and sstegr.
Function/Subroutine Documentation
subroutine dlasq2 (integerN, double precision, dimension( * )Z, integerINFO)
DLASQ2 computes all the eigenvalues of the symmetric positive definite tridiagonal matrix associated with the qd Array Z to high relative
accuracy. Used by sbdsqr and sstegr.
Purpose:
DLASQ2 computes all the eigenvalues of the symmetric positive
definite tridiagonal matrix associated with the qd array Z to high
relative accuracy are computed to high relative accuracy, in the
absence of denormalization, underflow and overflow.
To see the relation of Z to the tridiagonal matrix, let L be a
unit lower bidiagonal matrix with subdiagonals Z(2,4,6,,..) and
let U be an upper bidiagonal matrix with 1's above and diagonal
Z(1,3,5,,..). The tridiagonal is L*U or, if you prefer, the
symmetric tridiagonal to which it is similar.
Note : DLASQ2 defines a logical variable, IEEE, which is true
on machines which follow ieee-754 floating-point standard in their
handling of infinities and NaNs, and false otherwise. This variable
is passed to DLASQ3.
Parameters:
N
N is INTEGER
The number of rows and columns in the matrix. N >= 0.
Z
Z is DOUBLE PRECISION array, dimension ( 4*N )
On entry Z holds the qd array. On exit, entries 1 to N hold
the eigenvalues in decreasing order, Z( 2*N+1 ) holds the
trace, and Z( 2*N+2 ) holds the sum of the eigenvalues. If
N > 2, then Z( 2*N+3 ) holds the iteration count, Z( 2*N+4 )
holds NDIVS/NIN^2, and Z( 2*N+5 ) holds the percentage of
shifts that failed.
INFO
INFO is INTEGER
= 0: successful exit
< 0: if the i-th argument is a scalar and had an illegal
value, then INFO = -i, if the i-th argument is an
array and the j-entry had an illegal value, then
INFO = -(i*100+j)
> 0: the algorithm failed
= 1, a split was marked by a positive value in E
= 2, current block of Z not diagonalized after 100*N
iterations (in inner while loop). On exit Z holds
a qd array with the same eigenvalues as the given Z.
= 3, termination criterion of outer while loop not met
(program created more than N unreduced blocks)
Author:
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Date:
September 2012
Further Details:
Local Variables: I0:N0 defines a current unreduced segment of Z.
The shifts are accumulated in SIGMA. Iteration count is in ITER.
Ping-pong is controlled by PP (alternates between 0 and 1).
Definition at line 113 of file dlasq2.f.
Author
Generated automatically by Doxygen for LAPACK from the source code.
Version 3.4.2 Tue Sep 25 2012 dlasq2.f(3)