我编写了这段代码,从.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();
}
答案 0 :(得分:4)
这是正常的,你没有分配字符串。 C需要您在使用它之前在内存中分配它。你也必须知道它的大小。
在你的代码中,字符串指向内存,因此它不存在(确切地说它指向你很有可能无法访问它的某个地方)
了解malloc的工作原理。
答案 1 :(得分:1)
使用malloc函数为字符串分配空间。
string=malloc(100*sizeof(char));