char (*a)[N] 與 char* a[M]區別


已知第二維

char (*a)[N]; //指向數組的指針,實際上這里的N並沒有實際的約束意義,平時也很少這么用
a = (char (*)[N])malloc(sizeof(char *) * m);
printf("%d\n", sizeof(a)); 
printf("%d\n", sizeof(a[0]));//N,一維數組
free(a);

 

已知第一維

char* a[M]; //指針的數組
int i;
for(i=0; i<M; i++)
a[i] = (char *)malloc(sizeof(char) * n);
printf("%d\n", sizeof(a)); //4*M,指針數組
printf("%d\n", sizeof(a[0]));//4,指針
for(i=0; i<M; i++)
free(a[i]);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM