我正在尝试创建一个struct对象(堆栈),它包含:
typedef struct node {
int val;
struct node * next;
}node_t;
typedef struct {
node_t * top;
int max_size;
int used_size;
} Stack;
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试初始化对象并使用以下函数为其分配一些内存空间时:
Stack * newStack(int max_size) {
Stack * S = malloc(sizeof(Stack));
S->top = NULL;
S->max_size = max_size;
S->used_size = 0;
return S;
}
Stack * S = newStack(256); //error here
Run Code Online (Sandbox Code Playgroud)
我得到上面提到的错误 -
常量表达式中不允许函数调用
我以前从未遇到过这种类型的错误,我不知道如何处理它.任何帮助表示赞赏.
在[dateView.setText(tempDate);]获取NullPointerException ...请提出任何提示?基本上我需要从日历中获取更改日期,然后使用这个新日期更新TextView.谢谢.
CalendarView calendar;
String tempDate;
TextView dateView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
dateView = (TextView)findViewById(R.id.TextDate);
setContentView(R.layout.calendar);
initializeCalendar();
}
public void initializeCalendar() {
calendar = (CalendarView) findViewById(R.id.calendar);
calendar.setShowWeekNumber(false);
calendar.setFirstDayOfWeek(2);
calendar.setSelectedWeekBackgroundColor(getResources().getColor(R.color.lightblue));
calendar.setUnfocusedMonthDateColor(getResources().getColor(R.color.transparent));
calendar.setWeekSeparatorLineColor(getResources().getColor(R.color.transparent));
calendar.setSelectedDateVerticalBar(R.color.blue);
calendar.setOnDateChangeListener(new OnDateChangeListener() {
@Override
public void onSelectedDayChange(CalendarView view, int year, int month, int day) {
Toast.makeText(getApplicationContext(), day + "/" + month + "/" + year, Toast.LENGTH_LONG).show();
tempDate = (day+"/"+month+"/"+year);
dateView.setText(tempDate);
}
});
}
Run Code Online (Sandbox Code Playgroud)
}
错误报告:
java.lang.NullPointerException
at training.mark.trainingii.Calendar$1.onSelectedDayChange(Calendar.java:40)
at android.widget.CalendarView$1.onChanged(CalendarView.java:1012)
at android.database.DataSetObservable.notifyChanged(DataSetObservable.java:37)
at android.widget.BaseAdapter.notifyDataSetChanged(BaseAdapter.java:50)
at …Run Code Online (Sandbox Code Playgroud)