C動態內存分配幾個細節

1、只有分配了的存儲空間才能當數組使用:
char *s1;
char s2[10]="hello";
strcpy(s1,s2);
程序會出現內存錯誤,如下兩種方式是正確的:
char s1[10];          //程序運行時會自動分配數組空間;
char s2[10]="hello";
strcpy(s1,s2);
------------------------------
char *s1;
char s2[10]="hello";
s1=(char*) malloc(sizeof(char)*10); //手動分配存儲空間;
strcpy(s1,s2);

2、用malloc分配了存儲空間的指針可以當數組使用,如:
 printf("%c/n",s1[i]); //對1中的s1當數組使用;

3、sizeof計算一個指針的長度爲4,如sizeof(s1)=4;
   sizeof一個數組等於數組的長度,如sizeof(s2) = 10;

4、用strlen(char *s) 計算字符串的長度。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章