我刚刚破解了GTK开发的基础,并且正在尝试做一些有用的东西,这些东西对于我正在开发的应用程序的未来很有用。
具体地,
int main(int argc, char *argv[])
{
GtkWidget *window = NULL, *label = NULL;
GdkScreen *screen = NULL;
gint width = 0, height = 0;
char *resolution = NULL;
gtk_init(&argc, &argv);
if((screen = gdk_screen_get_default()) != NULL)
{
width = gdk_screen_get_width(screen);
height = gdk_screen_get_height(screen);
}
sprintf(resolution, "%d x %d", width, height);
...
执行时会导致段错误。我确信我犯了一个noob错误,最终我会认识到错误是什么,但目前我无法弄明白。我已经能够生成的Google结果也没有太大用处。
任何帮助?
答案 0 :(得分:2)
一个问题是变量resolution
指向NULL,因此sprintf肯定会导致未定义的行为(可能是崩溃)。代码应该为该变量分配内存(例如,resolution = malloc(somesize);
)或在堆栈上声明它(例如,char resolution[somesize];
)