because the sizeof(a) in:
is the size of the pointer; not the number of bytes allocated by malloc() to the array pointed to by a.
And, since you're getting 8 bytes for sizeof(a), we know that you are building your application as a 64-bit app; not as a 32-bit app. You don't want sizeof(a) when a is a pointer; you need to use the number of bytes allocated to the space pointed to by that pointer instead.
This User Gave Thanks to Don Cragun For This Post:
void main()
{
int a={1,2,3,4,5,6,7,8,9,10};
int *p=a;
int *q=&a;
cout<<q-p+1<<endl;
}
The output is 10, how?
if we give cout<<q it will print the address, value won't print....
if we give cout<<p it will print the address, value won't print....
p has the base addr; q... (1 Reply)
All ..
I am having a pointer array . And trying to store the addess into that pointer array . please see below the problem i faced
code:
int cnt1;
char *t_array;
char *f_array;
for(cnt1=0; cnt1<1000; cnt1++)
{
t_array =... (1 Reply)
If one wants to get a start address of a array or a string or a block of memory via a function, there are at least two methods to achieve it:
(1) one is to pass a pointer-to-pointer parameter, like:
int my_malloc(int size, char **pmem)
{
*pmem=(char *)malloc(size);
if(*pmem==NULL)... (11 Replies)
Hi all,
Can anyone provide help with getting the right syntax regarding array/pointers in C in the following code? Can't locate a specific example which clarifies this...
Say I declare a typedef to an array of pointers to some type...
/**
* An array of ptrs to sections
*/
typedef... (4 Replies)
if i create an array of pointers to a structure "struct node" as:
struct node *r;
and create "n" number of "linked lists" and assign it to the various struct pointers r using some function with a return type as structure pointer as:
r=multiplty(.......) /*some parameters*/
is... (2 Replies)
Hi guys,
Besides the points bellow, what would best practices for scripting be ?
1) set the PATH
2) unset the current environment (set -u ?)
3) (re)set the IFS to default value - space (IFS="" <- is this correct ?)
4) check the return code for each action inside the script (cd, rsync,... (1 Reply)
I am struggling with the pointer to 2D-array (cf: 2D array of pointers). Can anybody help me elaborate how the pointer x moves in the memory to access the individual of y, especially the high lighted lines?
I have talked to one of the curators of the forum, but I am still not quite clear.
Here... (1 Reply)
Discussion started by: yifangt
1 Replies
LEARN ABOUT DEBIAN
array
array(3) Library Functions Manual array(3)NAME
array - The array library interface
SYNTAX
#include <array.h>
DESCRIPTION
An allocated array variable keeps track of
o a (nonzero) pointer to a dynamically allocated region of memory;
o the number of bytes allocated (always positive); and
o the number of bytes initialized (between 0 and the number of bytes allocated).
There are two other possibilities for the state of an array variable: unallocated and failed. In both cases, there is no dynamically allo-
cated region of memory.
A new array variable is normally created as a static variable:
#include "array.h"
static array x;
At this point it is unallocated. The array library provides various allocation and inspection functions.
A new array variable can also be created dynamically. It must be initialized to all-0, meaning unallocated, before it is given to any of
the array functions. It must be returned to the unallocated (or failed) state, for example with array_reset, before it is destroyed. These
rules prevent all memory leaks.
Expansion and inspection
array x;
t* p1 = array_allocate(&x,sizeof(t),pos);
t* p2 = array_get(&x,sizeof(t),pos);
t* p3 = array_start(&x);
int64 len = array_length(&x,sizeof(t));
int64 bytes = array_bytes(&x);
Truncation and deallocation
array x;
array_truncate(&x,sizeof(t),len);
array_trunc(&x);
array_reset(&x);
array_fail(&x);
Comparison
array x;
array y;
if (array_equal(&x,&y))
/* arrays are equal... */
Concatenation
array x;
array y;
array_cat(&x,&y);
array_catb(&x,"fnord",5);
array_cats(&x,"fnord");
array_cats0(&x,"fnord"); /* also append the */
array_cat0(&x); /* append */
array_cate(&x,"fnord",1,4); /* append "nor" */
ORIGINAL API DEFINITION
http://cr.yp.to/lib/array.html
SEE ALSO array_get(3), array_start(3), array_fail(3)array(3)