什么是无效的初始化程序?我的代码在哪里,我该如何纠正?

时间:2012-10-04 20:00:16

标签: c initializer

我在compilr.com上运行我的代码并使用C作为我的语言。我正在尝试制作一个简单的游戏,你有一个库存,并从100美元开始。你通过秘密为其他玩家做工作来赚钱。但是,我收到一条错误消息,上面写着“初始化程序无效”。这是什么,我该如何解决?这是我的代码:

#include<stdio.h>

int main()
{
    int player_cash[][3] = 100;
    int player[3];
    int job[][100] = {
        "Text me the address of player1",
        "I'll donate $100 to the your funds, if you steal the gold from player2 for me"
    };
            if (player_cash[1] > 5);
                do job[0]
        else if(player_cash[1]<5);

        return 0;
}

2 个答案:

答案 0 :(得分:2)

 int player_cash[][3] = 100;

你声明一个二维的int数组,然后尝试用一个int初始化它。 正确的语法是

 int player_cash[][3] = 
 { 
   {100}
 };

虽然int player_cash[][3] = { 100 };也可以正常工作,但风格更不正确。

int job[][100] = { "Text me 

整数是整数,它们不是字符串。所以代码甚至没有意义。

另外,养成在if语句后始终使用{}的习惯。

if (player_cash[1] > 5);
 do job[0]
由于分号,

将被视为已写入

if (player_cash[1] > 5)
{}
do job[0]

答案 1 :(得分:1)

首先,player_cash是二维数组的声明。您尝试从整数文字初始化它。这不行。你的意思是简单地声明一个int吗?如果您只想存储一个数量,则不需要数组甚至二维数组。

同样适用于声明int job[][100]但在这里你尝试用字符串文字初始化它。

在尝试编写C代码之前,你真的应该读一本书。只是敲打看起来像C代码的东西不会让你到处都是。