动态内存分配实例
2012-05-17 09:48
274 查看
例子1、
#include <stdio.h> #include <stdlib.h> int main() { int *pi, *pi2; pi = ( int * )malloc( 10 * sizeof( int ) ); if( pi == NULL ) printf( " out of memory!\n" ); else printf( "malloc success!\n" ); //free( pi ); pi2 = pi; for( int i = 0; i < 10; i++ ) *pi++ = 6; for( int i = 0; i < 10; i++ ) printf( "%d = %d\n",i,*pi2++ ); }
打印结果:
wangkai@ubuntu:~/Test$ ./string malloc success! 0 = 6 1 = 6 2 = 6 3 = 6 4 = 6 5 = 6 6 = 6 7 = 6 8 = 6 9 = 6 wangkai@ubuntu:~/Test$
实例二
#include <stdio.h> #include <stdlib.h> int compare_integers( void const *a, void const * b ) { register int const *pa = (int *)a; register int const *pb = (int *)b; return *pa > *pb ? 1 : *pa < *pb ? -1: 0; } int main() { int *array; int n_values; int i; printf( "How many values are there ?" ); if( scanf( "%d",&n_values ) != 1 || n_values <= 0 ){ printf( "Iligal number of values.\n" ); exit( EXIT_FAILURE ); } array = (int *)malloc( n_values * sizeof( int ) ); if( array == NULL ){ printf( "Can't get memory for that many values.\n" ); exit( EXIT_FAILURE ); } for( i = 0;i < n_values; i +=1 ){ printf( "?" ); if( scanf( "%d",array + i ) != 1 ) { printf( "Error reading value #%d\n",i ); free( array ); exit( EXIT_FAILURE ); } } qsort( array,n_values,sizeof( int ), compare_integers ); for( i = 0; i < n_values; i +=1 ) printf( "%d\n",*(array + i) ); free( array ); return EXIT_SUCCESS; }
qsort包含在<stdlib.h>头文件中,此函数根据你给的比较条件进行快速排序,通过指针移动实现排序。排序之后的结果仍然放在原数组中。使用qsort函数必须自己写一个比较函数。
函数原型:
void qsort ( void * base, size_t num, size_t size, int ( * comparator ) ( const void *, const void * ) );
相关文章推荐
- C语言 动态内存分配的详解及实例
- Windows内存管理机制及C++内存分配实例(一):进程空间
- C—动态内存分配之malloc与realloc的区别
- c++ 基类、派生类都使用了动态内存分配的实例
- c++类不含有数据成员(静态除外),则不会为该类实例分配存储空间,该类实例只占用一个字节空间
- ucgui 动态内存分配学习记录
- String类实例的两种分配方式
- 第十章 结构和联合 第十一章 动态内存分配[c和指针]
- C语言回顾(七、多重指针,argc,argv,动态内存分配,void指针,const)——iOS开发基础
- C 动态内存分配 ,用星号绘出正态分布
- 全面介绍Windows内存管理机制及C++内存分配实例(二):内存状态查询
- Samba服务器文件夹权限分配实例
- 全面介绍Windows内存管理机制及C++内存分配实例
- 静态、动态内存分配比较
- 再议:C++类实例化时的内存分配
- 全面介绍Windows内存管理机制及C++内存分配实例
- C_动态内存分配,malloc/free
- 动态内存分配(转载)
- 全面介绍Windows内存管理机制及C++内存分配实例之虚拟内存(2)
- Windows内存管理机制及C++内存分配实例