#include <stdio.h>
#include <stdlib.h>
typedef struct {
unsigned length;
} List;
void init(List *l) {
l = (List *) malloc(sizeof(List));
l->length = 3;
}
int main(void) {
List *list = NULL;
init(list);
if(list != NULL) {
printf("length final %d \n", list->length);
return 0;
}
return 1;
}
यह कोड का एक सरलीकृत संस्करण है जो मुझे समस्याएं दे रहा है। मैं एक विधि से पॉइंटर *list
बनाने की कोशिश कर रहा हूं जहां *list
पैरामीटर के रूप में पारित किया गया है।सी - एक तर्क के रूप में पारित सूचक को
मुझे पता है कि मैं void init(List *l)
इसे void init(List **l)
पर बदलकर काम कर सकता हूं लेकिन यह एक क्लास ट्यूटोरियल के लिए है। मैं विधि तर्क नहीं बदल सकता। मैंने इस पर काम करने में चार घंटे बिताए हैं।
मैं यह सुनिश्चित करना चाहता हूं कि मेरे प्रोफेसर का सामना करने से पहले void init(List *l)
कार्य करने का कोई तरीका नहीं है।
अग्रिम
पीओ विशेष रूप से उल्लेख किया गया है कि इसे "शून्य इनिट (सूची ** एल)" –
@ गुनर से संबोधित किया जा सकता है – meagar
असाइनमेंट निर्दिष्ट करता है कि यह कन्स्ट्रक्टर होना चाहिए। मैं अपने प्रोफेसर को ईमेल करने जा रहा हूं और उसे आवश्यकताओं को बदलने के लिए कहूंगा। आपकी सहायताके लिए धन्यवाद! –