c和指標中關於動態分配記憶體malloc和qsort的一個例子
#include <stdio.h>
#include <stdlib.h>
int compare_integers(void const *a,void const *b)
{
register int const *pa=a;
register int const *pb=b;
return *pa > *pb ? 1: *pa < *pb ? -1:0;//類似return *pa-*pb;
}
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("Illegal number of values.\n");
exit(EXIT_FAILURE);
}
/*
**分配記憶體,用於儲存這些值。
*/
array=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);
system("pause");
return EXIT_SUCCESS;
}
升序排列。相關文章
- C++ 指標動態記憶體分配C++指標記憶體
- 關於c語言記憶體分配,malloc,free,和段錯誤,記憶體洩露C語言記憶體洩露
- 記憶體動態分配與釋放,malloc和new區別記憶體
- c語言野指標與結構體指標動態記憶體分配小解C語言指標結構體記憶體
- struct和malloc記憶體互轉例子Struct記憶體
- C語言malloc()函式:動態分配記憶體空間C語言函式記憶體
- C++中的動態記憶體與智慧指標C++記憶體指標
- 簡單理解動態記憶體分配和靜態記憶體分配的區別記憶體
- C++ 動態記憶體分配C++記憶體
- C++動態記憶體分配C++記憶體
- C語言(動態記憶體分配)C語言記憶體
- c++動態記憶體管理與智慧指標C++記憶體指標
- 【C/C++】記憶體分配函式:malloc,calloc,realloc,_allocaC++記憶體函式
- C 語言中的指標和記憶體洩漏指標記憶體
- 動態記憶體分配記憶體
- 【S13】vector和string優先於動態分配的記憶體記憶體
- 函式指標、回撥函式、動態記憶體分配、檔案操作函式指標記憶體
- 智慧指標的模板,用來管理動態分配的記憶體指標記憶體
- C中的記憶體分配模型記憶體模型
- 函式中的指標分配的記憶體怎麼釋放函式指標記憶體
- c和指標的第一個例子程式指標
- C指標與記憶體指標記憶體
- 二維陣列的動態記憶體分配和釋放 (轉)陣列記憶體
- 動態分配記憶體地址(.NET)記憶體
- c/c++指標從淺入深介紹——基於資料記憶體分配的理解(上)C++指標記憶體
- C和C++的動態記憶體管理的區別C++記憶體
- c++動態記憶體智慧指標及weak_ptr用法的理解C++記憶體指標
- Oracle的記憶體分配和使用Oracle記憶體
- linux記憶體管理(一)實體記憶體的組織和記憶體分配Linux記憶體
- 關於C中記憶體操作記憶體
- C++ - 二級指標動態記憶體申請與釋放C++指標記憶體
- 記憶體分配詳解 malloc, new, HeapAlloc, VirtualAlloc,GlobalAlloc記憶體
- 關於C++ delete 來釋放new分配的記憶體C++delete記憶體
- C/C++使用malloc為結構體陣列分配記憶體(及free釋放記憶體)的三種方法C++結構體陣列記憶體
- C++ 動態記憶體分配與名稱空間C++記憶體
- 關於記憶體中棧和堆的區別記憶體
- 記憶體分配策略中,堆和棧的區別記憶體
- C語言-記憶體管理之一[記憶體分配]C語言記憶體