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

C語(yǔ)言安全編碼之?dāng)?shù)值中的sizeof操作符

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

通常來(lái)說(shuō)獲取數(shù)組的長(zhǎng)度時(shí)不要對(duì)指針應(yīng)用sizeof操作符。

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

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])這種用法確定這個(gè)數(shù)組的元素?cái)?shù)量,但由于array是一個(gè)形參,因此它是指針類型,sizeof(array) = sizeof(int *) = 4  (32位OS)

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

對(duì)此問(wèn)題的解決方案如下:

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++中用棧來(lái)判斷括號(hào)字符串匹配問(wèn)題的實(shí)現(xiàn)方法

    C++中用棧來(lái)判斷括號(hào)字符串匹配問(wèn)題的實(shí)現(xiàn)方法

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

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

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

    C++設(shè)計(jì)模式之原型模式

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

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

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

    C語(yǔ)言簡(jiǎn)明講解快速排序的應(yīng)用

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

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

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

    一起來(lái)看看C++STL容器之string類

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

    C語(yǔ)言switch語(yǔ)句和if用法介紹

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

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

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

    C語(yǔ)言自定義軍旗游戲源碼

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

最新評(píng)論