2016-02-02 16 views
6

मैं की तरहएक दो आयामी सरणी से एक आयामी सरणी हो रही

int outer[4][3] = { 
    { 1, 2, 3 }, 
    { 2, 3, 5 }, 
    { 1, 4, 9 }, 
    { 10, 20, 30 } 
}; 

और मैं outer अंदर की तरह कुछ एन-वें एक आयामी सरणी के लिए एक सूचक/सरणी प्राप्त करने के लिए, चाहते हैं एक सरणी

void foo() { 
    printf("%d %d %d\n", outer[1][0], outer[1][1], outer[1][2]); 
    int inner[3] = outer[1]; /* Is there some way to do this assignment? */ 
    printf("%d %d %d\n", inner[0], inner[1], inner[2]); 
    /* so that this line gives the same output as the first */ 
} 

बेशक इस सूचक गणित के साथ संभव है, लेकिन मुझे लगता है कि यह है कि मैं भूल गया हूँ के लिए कुछ वाक्य रचना मौजूद है।

+7

int * आंतरिक = और बाहरी [1] [0] भी कर सकते हैं; – user3528438

उत्तर

6

सरणी सूचक के लिए, inner एक सूचक के रूप में घोषित 3 int

int (*inner)[3] = &outer[1]; 


की एक सरणी के लिए आप सरणी outer[1] तो

के पहले तत्व के लिए सूचक चाहते हैं
int *inner = outer[1]; 

नौकरी करेगा। आप

int *inner = &outer[1][0]; 
+0

दूसरा काम करता है। धन्यवाद! – Charles

+0

@ चार्ल्स; आपने संकेतक के लिए पॉइंटर के लिए टिप्पणी (अब हटा दी गई) में पूछा। – haccks

+0

भ्रम के लिए खेद है। मैं 2 मिनट में स्वीकार करूंगा। – Charles

संबंधित मुद्दे