从函数中获取返回值

时间:2016-04-20 18:52:12

标签: c char

我想通过使用函数修改char并将其打印在屏幕上但我的代码无法实现此功能。这是我的源代码:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
long M = 2147483647;
void IntroduceError(char k[],double p)
{
    int i;

    for ( i = 0; i < 8; i++) {
        if ((double)random()/M <= p)
            k[i] = 1;
    }

}

int main(int argc, char *argv[])
{

    char test[] = "11110000";
    double rate = atof(argv[1]);
    IntroduceError(test, rate);
    printf("\nErrored codeword is : %s\n",test);

    return 0;
}

2 个答案:

答案 0 :(得分:1)

k是一个字符串,即字符数组,但您要为其分配一个整数值。

而不是:

k[i] = 1;

你可能想要:

k[i] = '1';

另外,你应该在你的程序开始时调用srandom种子随机数生成器,至少传入PID,即srandom(getpid());,这样你就不会得到同样的每次都有结果。

答案 1 :(得分:-1)

get语句中的

printf未定义。如果您使用get更改test,则应进行编译。