0

それが私がそれを構築する方法です: gcc pkg-config --cflags --libs gtk+-2.0-o spawn spawn_with_pipes.c

以下の例のスニペットでは、次のエラーが表示されます。"Data - it refer to data= g_slice_new(Data); の前に構文エラーがあります。

#include <gtk/gtk.h>

typedef struct
{
    /* Buffers that will display output */
    GtkTextBuffer *out;
    GtkTextBuffer *err;

    /* Progress bar that will be updated */
    GtkProgressBar *progress;

    /* Timeout source id */
    gint timeout_id;
}Data;

data= g_slice_new(Data); //error here
4

1 に答える 1

3

関数外の初期化子は定数式でなければなりません。それらの中で関数を呼び出すことはできません。

さらに、コード内の変数「data」は int であり、g_slice_new の戻り値は gpointer です。

「データ」の定義を変更し、初期化をメインに移動する必要があります。

gpointer data;

int main(int argc, char *argv[])
{
    ...
    data = g_slice_new(Data);
于 2009-07-28T14:34:52.493 に答える