簡體   English   中英

如何循環遍歷 C 中的 function 中的數組?

[英]How do I loop over an array in a function in C?

我想生成一個16 byte長的unsigned char array ,並用隨機字符填充它,除了一些字符。

我仍然是 C 的菜鳥,我仍然不明白何時使用指針等正確使用 arrays。

我現在擁有的

bool has_illegal_character(uint8_t * arr, int length){
    for(int i=0; i<sizeof(length); i++){
        if (*arr == 0x01) return true;
        else if (*arr == 0x04) return true;
        else if (*arr == 0x05) return true;
        else if (*arr == 0x15) return true;
        else if (*arr == 0x00) return true;
    }
    return false;
}

uint8_t arr[16] = {0};
while(has_illegal_character(arr, sizeof(arr))){
   for(int i = 0; i < sizeof(arr; i++)
   {
        arr[i] = rand() % 255;
   }
}

這不起作用。

創建一個填充隨機字符的數組的正確方法是什么,除了0x010x040x050x15 ,理想情況下是在 C 中使用 function?

這個:

for(int i=0; i<sizeof(length); i++){
                 ^
                 |
                wut

不正確,您對循環length本身的字節不感興趣。 它應該只是:

for(int i = 0; i < length; ++i){

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM