c - 无效函数: returning garbage from an array variable to main in C

标签 c

我需要一些帮助

我希望我的 void 函数显示正确的输出而不是垃圾,我的当前程序仍在进行中。我想知道是否

void expand(char r[7], char *eR){

    //  static char temp[10];
        *(eR+0) = r[0];
        *(eR+1) = r[1];
        *(eR+2) = r[3];
        *(eR+3) = r[2];
        *(eR+4) = r[3];
        *(eR+5) = r[2];
        *(eR+6) = r[4];
        *(eR+7) = r[5];
        *(eR+8) = '\0';

        printf("Expanded: %s",eR);

    }

int main(){
    char bitMessage[13],key[10],l[7],r[7],xResult,eR[9];
    char *temp=eR;
    int i;
    char *fResult;
    printf("Enter Message:");
    scanf("%s",&bitMessage);
    printf("Enter Key:");
    scanf("%s",&key);

    printf("Message is %s \n",bitMessage);
    printf("Key is %s \n",key);
    printf("\n\n");
    printf("LEFT:");
    for(i=0;i<6;i++){
        printf("%c",bitMessage[i]);
    }
    printf("\n");
    printf("RIGHT:");
    for(i=6;i<12;i++){
        printf("%c",bitMessage[i]);
    }
    printf("\n");
    printf("Key:");
    for(i=0;i<10-1;i++){
        printf("%c",key[i]);
    }
    printf("\n\n");
    expand(r,eR);


    return 0;
}

enter image description here

请帮助我解决这个问题,我在编程方面还是新手

最佳答案

您需要初始化rl。我认为你想要这个:

printf("LEFT:");
// Copy chars bitMessage 0-5 to l 0-5
for(i = 0; i < 6; i++){
    l[i] = bitMessage[i];
    printf("%c", l[i]);
}
printf("\n");
printf("RIGHT:");
// Copy chars bitMessage 6-11 to r 0-5
for(i = 6; i < 12; i++){
    r[i - 6] = bitMessage[i];
    printf("%c", r[i - 6]);
}

关于c - 无效函数: returning garbage from an array variable to main in C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50054262/

相关文章:

c++ - 我应该用 0 还是 0.0 初始化浮点(double、float)变量?

c - Mac OS X 上由 pclose() 引起的 Valgrind 错误

c - 如何打印字符**

c - ssh 服务器 C 库?

c - 在C中,功能的extern关键字完全必要吗?

c - 在 C 语言中使用 setenv()

不能使用 MS Visual C++ 在 C 中包含 iostream?

c - dl_iterate_phdr 在 Mac 上等效

c - 翻转图像汇编代码

c++ - 进入 AVR 单片机只读取两个字符