gpt4 book ai didi

c - 传递给 C 函数时丢失 char 数组的值

转载 作者:太空宇宙 更新时间:2023-11-04 03:49:39 25 4
gpt4 key购买 nike

我试图将一个 char[] 传递给一个函数,但是每次我尝试传递它时它都会失去它的值(value)。我可以将它传递给其他函数,但是当我将它传递给一个特定的函数时,它只会丢失存储在数组中的字符串。代码如下:

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 时,它失去了它的值(value)。

最佳答案

由于您在范围内没有原型(prototype)并且函数在定义之前被调用,变量将作为整数传递。如果您有 32 位整数和 64 位指针,精度损失可能会导致空指针或无效指针。

关于c - 传递给 C 函数时丢失 char 数组的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21766647/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com