如何将函数的返回值存储到C中的数组中

时间:2014-09-12 18:14:51

标签: c arrays

此循环只是将data []中的每个字符传递给将字符转换为ascii的函数cast

我的问题是我想将返回的值存储到数组' buffer []'中,但它只存储第一个返回的值。换句话说,我希望buffer []具有函数中的所有重新调整的值。

for (int i =0 ; i < 8; i++)
{
    if (data [i] != '\0')
    {
        buffer [i] =cast(data[i]);   
    }
}

long cast (char b)
{
    long x = 0;
    x = (long)b;    
    return x;
}

3 个答案:

答案 0 :(得分:1)

不需要编写函数来进行类型转换。

buffer[i] = (long)data[i];

答案 1 :(得分:0)

我通过使数据数组和缓冲区数组的大小相同来解决问题。 实施例;

data [512];
buffer [512];

所以,现在从数据转换的每个元素都保存在缓冲区数组中。

答案 2 :(得分:0)

如果处理字符串,你的循环条件也有一个根本的缺陷。

for (int i =0 ; i < 8; i++)
{
    if (data [i] != '\0')
    {
        buffer [i] =cast(data[i]);   
    }
}

如果数据[3] =='\ 0',则循环继续直到i <1。 8。 我建议;

for (int i =0 ; i < 8; i++)
{
    if (data [i] == '\0')
    {
        break;  
    }
    buffer [i] =cast(data[i]); 
}

(最初发布为评论)