मैं एक प्रोग्राम लिखने की कोशिश कर रहा हूं जो पाठ फ़ाइल से तारों की एक श्रृंखला में पढ़ता है और इन्हें प्रत्येक तत्व के लिए गतिशील रूप से आवंटित करने वाले तारों की एक सरणी में संग्रहीत करता है। मेरी योजना प्रत्येक स्ट्रिंग को एक पॉइंटर का उपयोग करके सरणी में स्टोर करना था और उसके बाद सरणी आकार को और अधिक पढ़ा गया था। मुझे समझने में परेशानी हो रही है कि मेरा टेस्ट कोड नीचे क्यों काम नहीं कर रहा है। क्या यह एक व्यावहारिक विचार है?पॉइंटर सरणी के लिए गतिशील स्मृति आवंटन
char *aPtr;
aPtr =(char*)malloc(sizeof(char));
aPtr[0]="This is a test";
printf("%s",aPtr[0]);
इसका कारण यह है कि आप 'एकल वर्ण के लिए malloc' अंतरिक्ष, और फिर आप एक' char' टाइप lvalue करने के लिए एक पूरी स्ट्रिंग आवंटित करने के लिए कोशिश काम नहीं करता। –
अनुशंसित पढ़ने: [मुझे सी में malloc का उपयोग कब करना चाहिए और जब मैं नहीं?] (Http://stackoverflow.com/a/1963812/2455888)। – haccks