c - Dynamic Allocation Two dimensional array of fixed-length strings -
एक प्रोग्राम में, मुझे इनपुट से स्कैन करना होगा
scanf ("% s ", currWord); शब्दों की एक गैर-परिभाषित संख्या, जो लाइनों की एक परिभाषित संख्या में आती है।
मैं शब्दों को दो आयामी सरणी में डालना चाहता हूं । स्ट्रिंग्स की लंबाई तय की गई है [MAX_WORD_LEN + 1] मेरा विचार है:
int पंक्ति = 10 // 10 int int प्रारंभ करने के लिए प्रत्येक पंक्ति में col = 5 // 5 शब्द int i शुरू करने के लिए; टाइपेडफ चार शब्द [MAX_WORD_LEN + 1]; // 11char लंबाई स्ट्रिंग शब्द ** मैट्रिक्स के नए प्रकार; // 2 आयामी सरणी (पॉइंटर्स) जिसमें कोई स्मृति मैट्रिक्स = मॉलोक नहीं है (पंक्ति * आकार (शब्द *)); // (* = i; i & lt; पंक्ति; i ++) के लिए शब्द * (शब्द संकेतक) आकार की पंक्ति संख्या आवंटित करें {मैट्रिक्स [i] = मॉलोक (कॉल * आकार (शब्द)); // प्रत्येक पंक्ति के लिए शब्दों की संख्या आवंटित करें} इसलिए, मुझे पता नहीं है कि यह सही है।
मुझे कुछ मदद और सुझावों के लिए खुशी होगी ..
संपादित करें: इनपुट से शब्द प्राप्त करते समय मुझे मेमोरी (प्रत्येक पंक्ति में पंक्तियों और शब्दों की संख्या) को बढ़ाने की आवश्यकता होती है, तो कैसे क्या मुझे ऐसा करना है? (Realloc?)
मुझे निम्न करने की आवश्यकता है:
विवरण में जाने के बिना, एक लिंक के रूप में मैट्रिक्स का सबसे आसान तरीका है लिंक्ड-सूचियों की सूची .. struct matrix_field {char डेटा [11]; मैट्रिक्स_फ़ील्ड * next_field; }; Struct matrix_row {matrix_field * first_field; Matrix_row * next_row; }; संरचना मैट्रिक्स {matrix_node * first_row; }; मेमोरी में आपका डेटा इस तरह दिखाई देगा .. [+] | V [x] - & gt; [ए] - & gt; [बी] - & gt; [सी] - & gt; | V [y] - & gt; [डी] - & gt; [ई] - & gt; [एफ] - & gt; | V [z] - & gt; [g] - & gt; [एच] - & gt; [i] - & gt; | V --------------- [+] मैट्रिक्स [x] .. [z] matrix_row [a] .. [i] मैट्रिक्स_फ़ील्ड
Comments
Post a Comment