C語言中,數(shù)組必須是靜態(tài)的,也就是說數(shù)組的大小必須在程序運行之前確定,由于C語言不具備Java等語言靜態(tài)分析工具的功能,所以可以嚴格檢查數(shù)組下標的范圍,今天武林技術(shù)頻道小編就為大家介紹C語言安全編碼數(shù)組記法的一致性,一起來看看吧!
示例代碼如下:
//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;}?以上就是武林技術(shù)頻道小編介紹的關(guān)于C語言安全編碼數(shù)組記法的一致性,大家都還滿意嗎?如果你還想了解更多技術(shù)方面的知識,請隨時關(guān)注武林技術(shù)頻道!
新聞熱點
疑難解答
圖片精選