[英]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.