欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言安全編碼之數(shù)值中的sizeof操作符

 更新時間:2014年07月07日 12:05:43   投稿:shichen2014  
這篇文章主要介紹了C語言安全編碼的數(shù)值中的sizeof操作符用法注意事項,需要的朋友可以參考下

通常來說獲取數(shù)組的長度時不要對指針應用sizeof操作符

現(xiàn)來看看下面這段代碼:

void clear(int array[]) {
  for(size_t i = 0; i < sizeof(array) / sizeof(array[0]); i++) {
    array[i] = 0;
  }
}
void dowork(void) {
  int dis[12];
  clear(dis);
  /*...*/
}

clear()使用sizeof(array) / sizeof(array[0])這種用法確定這個數(shù)組的元素數(shù)量,但由于array是一個形參,因此它是指針類型,sizeof(array) = sizeof(int *) = 4  (32位OS)

當sizeof操作符應用于聲明為數(shù)組或函數(shù)類型的形參時,它會產(chǎn)生經(jīng)過調(diào)整的(指針)類型的長度

對此問題的解決方案如下:

void clear(int array[], size_t len) {
  for(size_t i = 0; i < len; i++) {
    array[i] = 0;
  }
}
void dowork(void) {
  int dis[12];
  clear(dis, sizeof(dis) / sizeof(dis[0]));
  /*...*/
}

相關(guān)文章

  • C++中用棧來判斷括號字符串匹配問題的實現(xiàn)方法

    C++中用棧來判斷括號字符串匹配問題的實現(xiàn)方法

    這篇文章主要介紹了C++中用棧來判斷括號字符串匹配問題的實現(xiàn)方法,是一個比較實用的算法技巧,包含了關(guān)于棧的基本操作,需要的朋友可以參考下
    2014-08-08
  • C++的cout.tellp()和cout.seekp()語法介紹

    C++的cout.tellp()和cout.seekp()語法介紹

    無論是使用 cout 輸出普通數(shù)據(jù),用 cout.put() 輸出指定字符,還是用 cout.write() 輸出指定字符串,數(shù)據(jù)都會先放到輸出流緩沖區(qū),待緩沖區(qū)刷新,數(shù)據(jù)才會輸出到指定位置,本文給大家介紹一下C++的cout.tellp()和cout.seekp()語法,需要的朋友可以參考下
    2023-09-09
  • C++設計模式之原型模式

    C++設計模式之原型模式

    這篇文章主要介紹了C++設計模式之原型模式,本文講解了什么是原型模式、為什么要使用原型模式、代碼實例等內(nèi)容,需要的朋友可以參考下
    2014-09-09
  • C++靜態(tài)持續(xù)變量介紹

    C++靜態(tài)持續(xù)變量介紹

    這篇文章主要介紹了 C++靜態(tài)持續(xù)變量,靜態(tài)持續(xù)變量的定義C++和C語言是一樣的,它擁有三種鏈接性,即外部鏈接性、內(nèi)部連接性和無鏈接性。其中外部鏈接性指的是可以在其他文件中訪問,內(nèi)部鏈接性指的是只能在當前文件訪問,需要的朋友可以參考一下
    2021-11-11
  • C語言簡明講解快速排序的應用

    C語言簡明講解快速排序的應用

    快速排序由于排序效率在同為O(N*logN)的幾種排序方法中效率較高,因此經(jīng)常被采用,再加上快速排序思想----分治法也確實實用,因此很多軟件公司的筆試面試,包括像騰訊,微軟等知名IT公司都喜歡考這個,還有大大小的程序方面的考試如軟考,考研中也常常出現(xiàn)快速排序的身影
    2022-05-05
  • C語言數(shù)據(jù)結(jié)構(gòu)之圖書借閱系統(tǒng)

    C語言數(shù)據(jù)結(jié)構(gòu)之圖書借閱系統(tǒng)

    這篇文章主要為大家詳細介紹了C語言數(shù)據(jù)結(jié)構(gòu)之圖書借閱系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 一起來看看C++STL容器之string類

    一起來看看C++STL容器之string類

    這篇文章主要為大家詳細介紹了C++STL容器之string類,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • C語言switch語句和if用法介紹

    C語言switch語句和if用法介紹

    本文詳細講解了C語言switch語句和if用法介紹,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-12-12
  • C++?Socket實現(xiàn)TCP與UDP網(wǎng)絡編程

    C++?Socket實現(xiàn)TCP與UDP網(wǎng)絡編程

    本文主要介紹了C++?Socket實現(xiàn)TCP與UDP網(wǎng)絡編程,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • C語言自定義軍旗游戲源碼

    C語言自定義軍旗游戲源碼

    這篇文章主要為大家詳細介紹了C語言自定義軍旗游戲源碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02

最新評論