错误:变量“string”未初始化

时间:2015-06-10 12:49:45

标签: c arrays string file

我编写了这段代码,从.txt读取一个字符串并将其置于char *中,但它给出了错误,即变量“string”未初始化,即使我在fscanf中初始化它,你能告诉我吗我哪里错了?谢谢!

public void timer(int duration, int tick) {
    _timer = new CountDownTimer(duration, tick) {

        public void onTick(long millisUntilFinished) {
            _isRunning = true;
        }

        public void onFinish() {
            _isRunning = false;
            String currentMeal = getMealType();
            int currentCounter = -1;
            int currentFoodItemId = -1;

            for (int i = 0; i < _user.get_preferences().size(); i++) {
                Historic temp = _user.get_preferences().get(i);
                String[] hMealType = temp.getType().split("_"); 

                if(currentMeal.equals(hMealType[1]) && hMealType[0].equals("preferences")) {
                    if(temp.getCounter() > currentCounter && !_foodlist.selectListContainsFood(temp.getFooditemid())) {
                        currentFoodItemId = temp.getFooditemid();
                        currentCounter = temp.getCounter();
                    }
                }
            }

            _prompt.setText("> Maybe you should take a(n) "+_foodlist.getFoodItemName(currentFoodItemId)+" with it.");

            final int id = currentFoodItemId;
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    highlightFoodItem(id);                      
                }
            });
        }
    };
    _timer.start();
}

2 个答案:

答案 0 :(得分:4)

这是正常的,你没有分配字符串。 C需要您在使用它之前在内存中分配它。你也必须知道它的大小。

在你的代码中,字符串指向内存,因此它不存在(确切地说它指向你很有可能无法访问它的某个地方)

了解malloc的工作原理。

答案 1 :(得分:1)

使用malloc函数为字符串分配空间。

string=malloc(100*sizeof(char));