ctypes的結構體裡面有二維陣列如何定義

2021-05-23 09:26:50 字數 1405 閱讀 8987

1樓:匿名使用者

你這問題沒法

bai攔截啊.你如果du這樣寫不如用字典

zhi,

但是因為python 不是固dao定結構的,陣列和字典回的大小是可以執行時答增加和減少的.多維陣列可以先增加一個主陣列 然後每個單元新增新的元素

請教ctypes如何實現傳入結構體陣列指標的引數

2樓:瑞福德金融

直接將函式引數,定義為結構體指標型別即可。

然後傳入對應結構體陣列名,或者結構體變數的地址。

python使用ctypes呼叫lib,怎麼使用指標型別引數接收輸出引數

3樓:匿名使用者

本文演示了在python中呼叫c語言生成的動態庫,返回結構體指標,並進行輸出!

test.c(動態庫源**)

// 編譯生成動態庫: gcc -g -fpic -shared -o libtest.so test.c

#include

#include

#include

typedef struct structpointertest

structpointertest, *structpointer;

structpointer test() // 返回結構體指標

編譯:gcc -g -fpic -shared -o libtest.so test.c

call.py(python呼叫c語言生成的動態庫):

#!/bin/env python

# coding=utf-8

from ctypes import *

#python中結構體定義

class structpointer(structure):

_fields_ = [("name", c_char * 20), ("age", c_int)]

if __name__ == "__main__":

lib = cdll.loadlibrary("./libtest.so")

lib.test.restype = pointer(structpointer)

p = lib.test()

print "%s: %d" %(p.contents.name, p.contents.age)

最後執行結果:

[zcm@c_py #112]$make clean

rm -f *.o libtest.so

[zcm@c_py #113]$make

gcc -g -fpic -shared -o libtest.so test.c

[zcm@c_py #114]$./call.py

joe: 20

[zcm@c_py #115]$

C二維陣列的程式,一個 C 二維陣列的程式

陣列太大了,看看下面 一個由 c c 編譯的程式佔用的記憶體分為以下幾個部分 1 棧區 stack 由編譯器自動分配釋放 存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。2 堆區 heap 一般由程式設計師分配釋放,若程式設計師不釋放,程式結束時可能由 os 注意它與資料結構中的...

二維空間是什麼樣的,二維空間是什麼樣的?三維空間和二維空間是什麼關係?

二度空間 2d 是指僅由長度和寬度 在幾何學中為x軸和y軸 兩個要素所組成的平面空間,只在平面延伸擴充套件,同時也是美術上的一個術語,例如繪畫便是要將三度空間的事物,用二度空間來展現。有一位專家曾打過一個比方 讓我們先假設一些生活在二維空間的扁片人,他們只有平面概念。假如要將一個二維扁片人關起來,只...

怎樣在cad裡面畫圓柱體能用二維的畫嗎

可以。只是二維里拉伸了看不出來。以橫槓為半徑畫一個圓,面域 reg 拉伸 ext 輸入你要多長的資料。就可以了。ro是二維旋轉,你的要旋轉也是三維旋轉了。修改 三維操作 三維旋轉 後面畫牆是三維的必須得有長寬高啊。可以單獨新增,移動然後布林運算就可以了。哥們,不是我說你,你要搞傢俱,還得加強cad的...