2013-11-01 35 views
5

olarak başlatır Bir SWTR modülüyle çalışırken ptrn tarafından bir ptr NULL başlatılabilir mi? ÖrneğinSWIG python bir işaretçiyi NULL

, aşağıdaki gibi piton gelen yapı için bir işaretçi oluşturabilir, bir içme modülü m (_m.so) 'de bir yapı track_t sarılmış ki:

import m 

track = m.track_t() 

bu sadece bir Malloc olacak Uygun sarmalayıcı işlevinde benim için track_t.

track_t *track = NULL; 

Ama piton ziyade C, örneğin:

Ben ancak şu elde edebilmek istiyorum yeni karma tabloları bir yardımcı yazabilirim

bir NULL pointer ile başladığına dikkat kullanıyorum karma tablo C uygulamasının bir gerekliliktir olarak

Bunu yapmak gerekir piton taraftan NULL için bir işaretçi initialize işlev, bir NULL işaretçi döndüren ancak daha basit bir yol olabileceğini düşündüğü track_t* create_null_track() derken?

DÜZENLEME

:

yardımcı işlevi olarak ben yardımcı işlevi çalışır ama ortak bir gerektirmemesi gibi görünüyor boş gösterici gerektiren olarak bunu yapmanın yolu inşa yeterli olacağını düşünüyoruz olacağını teyit edebilir

olduğunu basit olarak:

track_t* create_null_track(void) 
{ 
    return NULL; 
} 

işlevinde belirtilen dönüş türü bilgisi gerekli olduğunu değil emin bu yüzden daha genel bir yaklaşım olabilir:

void* get_null(void) 
{ 
    return NULL; 
} 

belki?

cevap

5

Boş bir değeri göstermek için python'dan None kullanın.

+1

Şimdi aptal hissediyorum ;-) – bph

İlgili konular