1,指標的使用
定義無有參無返回值函式,
※ 利用陣列作為函式引數
陣列元素可以作為實參,但不可以作為形參(傳遞方向:從實參傳到形參,單向傳遞)
用 數值元素 作為函式 實參 時,向形參變數傳遞的是陣列元素的值,
而用 陣列名 作為函式 實參 時,向形參(陣列名或指標變數)傳遞的是陣列首元素的位址。
int ar 等價於 int *ar 前提是在只有函式原型或函式定義的時候才可以。
2,利用malloc為數值分配空間
分配記憶體
malloc():
使用:int *p;
p = (int *)malloc(size); //size=400
calloc():
使用:int *p;
p = (int *)calloc( n, size ); //n:分配n個長度為size的記憶體塊,size=400
realloc():
使用:int *p;
p = (int *)realloc( p, newsize); //p: 調整p所指記憶體區域的大小為newsize=400
3,free()的運用,以及使用free遇到的問題
使用vc++2010 編譯器時,執行閃退(奔潰)的解決方法
1.越界
例如:
int *p = (int *)mallco(10*sizeof(int));
for( int i =0; i<=10; i++)
free(p);
2. 修改了指標的指向
int *p = (int *)mallco(10*sizeof(int));
for( int i =0; i<=10; i++)
free(0);
3.重複釋放同一段記憶體
4.釋放非動態記憶體(自己在此處磕碰!!!)
程式如下:(不是最優的方法)
#include#includevoid cap(char *a,int n) //形參
printf("b = %s",b);
printf("\n");
//free(b); //不可以釋放非動態記憶體
}int main()
#include int main()
; int i = 0;
for (i = 0; src[i] != '\0'; i++)
//補結束符
dst[i] = 0;
printf("%s\n", dst);
return 0;
}
字串 不使用庫函式,編寫函式strcpy
一 問題描述 已知strcpy函式的原型是 char strcpy char strdest,const char strsrc 其中strdest是目的字串,strsrc是源字串。1 不呼叫c c的字串庫函式,請編寫函式 strcpy 2 strcpy能把strsrc的內容複製到strdest,為...
C語言 字串庫函式實現
對於字串,編譯器為我們提供了一些庫函式以方便我們對其的操作,下面我們將對一些常用的字串庫函式進行簡單介紹,並自我實現這些方法。1 strcopy 函式原型 char strcpy char dest,const char src 說明 src和dest所指記憶體區域不可以重疊且dest必須有足夠的空...
C語言 不使用strcpy 函式實現字串複製功能
字串複製函式 字串複製是字串操作中比較常用的操作之一。c語言庫函式中提供的字串複製函式是 strcpy函式。該函式的功能為 把源字元陣列中的字串複製到目的字元陣列 中,字串結束標誌 0 也一同複製。下面例項為通過自定義函式完成字串複製功能。源 include void copy string cha...