簡體   English   中英

傳遞給C函數時char數組的值丟失

[英]Losing value of char array when passing to C function

我試圖將char []傳遞給函數,但是每次嘗試傳遞char []都會失去它的價值。 我可以將其傳遞給其他函數,但是當我將其傳遞給一個特定的函數時,它只會丟失存儲在數組中的字符串。 代碼如下:

int test(char one[], int len) {
    printf("The string: %s, The size: %d", one, len);
    int to = rd_field_length(one, 0, len);
    return to;
}
int main(){
    rd_open("thefile");
    char line[200] = "";
    double d;
    int * err;
    int c, length = 0;
    if(fp != NULL) {
            while((c = rd_getchar()) != EOF && c != '\n'){
                     line[length] = c;
                     length++;
            }
    }
    int to = test(line, length);
}
int rd_field_length(char buf[], int cur, int end ){
    printf("BUF: %s", buf);
    return 0;
}

行通過測試,我可以訪問該字符串,但是當傳遞到rd_field_length時,它將丟失其值。

由於您在范圍內沒有原型,並且在定義函數之前就已調用該函數,因此變量將作為整數傳遞。 如果您有32位整數和64位指針,則精度損失很可能導致指針為空或無效。

暫無
暫無

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

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