में सरणी की सरणी को ठीक करना मैं समाधान के साथ आने का प्रयास कर रहा हूं कि मैं सी # से मूल कार्यों में सरणी के सरणी को कैसे पार कर सकता हूं। मेरे पास पहले से ही फ़ंक्शन (मार्शल.गेटडिलेगेटफोरफंक्शन पॉइंटर) के प्रतिनिधि हैं, लेकिन अब मैं एक बहुआयामी सरणी (या बल्कि; सरणी की सरणी) को पारित करने की कोशिश कर रहा हूं।सी # (असुरक्षित कोड)
यह कोड उदाहरण तब काम करता है जब इनपुट में 2 सब-एरे होते हैं, लेकिन मुझे किसी भी उप-सरणी को संभालने में सक्षम होना चाहिए। ऐसा करने का सबसे आसान तरीका क्या है? मैं इस रूप में सरणियों बीच डेटा की प्रतिलिपि को नहीं देखना चाहते एक वास्तविक समय पाश में हो रहा हो जाएगा (मैं एक ऑडियो प्रभाव के साथ संवाद स्थापित कर रहा हूँ)
public void process(float[][] input)
{
unsafe
{
// If I know how many sub-arrays I have I can just fix them like this... but I need to handle n-many arrays
fixed (float* inp0 = input[0], inp1 = input[1])
{
// Create the pointer array and put the pointers to input[0] and input[1] into it
float*[] inputArray = new float*[2];
inputArray[0] = inp0;
inputArray[1] = inp1;
fixed(float** inputPtr = inputArray)
{
// C function signature is someFuction(float** input, int numberOfChannels, int length)
functionDelegate(inputPtr, 2, input[0].length);
}
}
}
}
मैंने जीसीएचंडल क्लास के बारे में पढ़ा था। अपना जवाब पढ़ने के बाद मैंने इसे अपने कॉल के लिए कार्यान्वित करने की कोशिश की और ऐसा लगता है कि यह बहुत अच्छी तरह से काम कर रहा है। त्वरित उत्तर के लिए धन्यवाद। – Valdemar