.


:




:

































 

 

 

 





 

, . .

, , . . , , . .

<allo.h>, <stdlib.h>.

 

1. void* malloc() - n 1- , 0. .

 

void main(void){

char *original= ;

char *copy;

copy=(char*)malloc(strlen(original)+1);

if(copy==NULL) {

puts( );

exit(1);

}

strcpy(copy,original);

cout<<copy<<endl; cout<<original<<endl;

free(copy);

}

 

. .

2. void* calloc(n,size type);

long* newmas = (long*)calloc(100,sizeof(long));

- ;

- p .

calloc() .

 

#define SIZE 128

void main(void) {

char *str=(char *)calloc(1,SIZE);

if(str==NULL) {

puts( );

exit(1);

}

else {

cout<< ;

gets(str);

cout<<str;

free(s);

}

}

 

3. void* realloc(void *, n) - . , .

ptr = realloc(nptr, size);

nptr - ; size .

 

void main(void) {

char *p1, *p2;

puts( 128 );

p1=malloc(128);

if(p1) {

puts( 256 );

p2=realloc(p1,256); // 256

}

if(p2)

free(p2);

else

free(p1);

}

 

4. void free(void *ptr) - .

64 - .

 

18.1 new delete ++

 

++ () .

new delete , , , malloc free.

:

- = new <->;

...

delete -;

.

new "", ( ) sizeof() ( ""). - , delete .

new . (, ). malloc, , . , " ", .

name *nameptr // name ,

...

if (!(nameptr = new name)) {

errmsg(" name");

exit (1);

}

...

delete nameptr; // name

//sizeof(name)

new, , .

 

new

 

"" , new . new :

mat_ptr = new int[3][10][12]; //

mat_ptr = new int[3][][12]; //

...

delete [] mat_ptr; // , ,

// mat_ptr

 





:


: 2016-11-23; !; : 451 |


:

:

. .
==> ...

1447 - | 1415 -


© 2015-2024 lektsii.org - -

: 0.009 .