2013-11-01 16 views
5

E 'possibile inizializzare un ptr su NULL dal lato python quando si ha a che fare con il modulo SWIG?Python SWIG inizializza un puntatore su NULL

Ad esempio, dire ho avvolto un track_t struct in un modulo sorso m (_m.so), posso creare un puntatore alla struttura pitone come segue:

import m 

track = m.track_t() 

questa sarà solo una malloc track_t per me nella funzione wrapper appropriata.

Vorrei tuttavia essere in grado di raggiungere i seguenti:

track_t *track = NULL; 

Ma in pitone anziché C, ad esempio inizializzare un puntatore a NULL dal lato pitone

ho bisogno di fare questo in quanto è un requisito dell'attuazione hash tabella C Sto usando che le nuove tabelle di hash iniziano con un puntatore NULL

Potrei scrivere un aiutante funzione, ad esempio, track_t* create_null_track() che restituisce un puntatore NULL ma ha pensato che potrebbe esserci un modo più semplice?

EDIT:

posso confermare che i lavori funzione di supporto, ma mi aspetto che ci sia una costruito nel modo di fare questo come richiede un puntatore NULL sembrerebbe un requisito comune

funzione di supporto è semplice:

track_t* create_null_track(void) 
{ 
    return NULL; 
} 

non sicuro che le informazioni sul tipo di ritorno specificato nella funzione è necessario quindi un approccio più generale potrebbero essere:

void* get_null(void) 
{ 
    return NULL; 
} 

forse?

risposta

5

Basta usare None da python per rappresentare un valore nullo.

+1

Ora mi sento stupido ;-) – bph

Problemi correlati