C語言中,數組必須是靜態的,也就是說數組的大小必須在程序運行之前確定,由于C語言不具備Java等語言靜態分析工具的功能,所以可以嚴格檢查數組下標的范圍,今天武林技術頻道小編就為大家介紹C語言安全編碼數組記法的一致性,一起來看看吧!
示例代碼如下:
//main.c#include<stdlib.h>enum {ARRAYSIZE = 100};char *a;void insert_a(void);int main(void) { a = (char*)malloc(ARRAYSIZE); if(a == NULL) { //處理分配錯誤 } insert_a(); return 0;}//insert_a.cchar a[];void insert_a(void) { a[0] = 'a';}
解決方案如下:
//insert_a.henum {ARRAYSIZE = 100};extern char *a;void insert_a(void);//insert_a.c#include "insert_a.h"char *a;void insert_a(void) { a[0] = 'a';}//main.c#include<stdlib.h>#include"insert_a.h"int main(void){ a = (char*)malloc(ARRAYSIZE); if(a == NULL) { //處理分配錯誤 } insert_a(); return 0;}
?以上就是武林技術頻道小編介紹的關于C語言安全編碼數組記法的一致性,大家都還滿意嗎?如果你還想了解更多技術方面的知識,請隨時關注武林技術頻道!
新聞熱點
疑難解答
圖片精選