मैं सोच रहा हूं कि पॉइंटर्स की एक सरणी बनाने का कोई तरीका है जो पूर्णांक के बहुआयामी सरणी में प्रत्येक पंक्ति के पहले कॉलम को इंगित करता है। उदाहरण के लिए, कृपया नीचे दिए गए कोड को देखो:पॉइंटर्स की Arrays जो पूर्णांक के arrays को इंगित करती हैं
#include <stdio.h>
int day_of_year(int year, int month, int day);
main()
{
printf("Day of year = %d\n", day_of_year(2016, 2, 1));
return 0;
}
static int daytab[2][13] = {
{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
{0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}
};
int day_of_year(int year, int month, int day)
{
int leap;
int *nlptr = &daytab[0][0];
int *lpptr = &daytab[1][0];
int *nlend = nlptr + month;
int *lpend = lpptr + month;
leap = year % 4 == 0 && year % 100 != 0 || year % 400 == 0;
if (leap)
for (; lpptr < lpend; lpptr++)
day += *lpptr;
else
for (; nlptr < nlend; nlptr++)
day += *nlptr;
return day;
}
जब मैं नीचे इस प्रकार लिख:
int *p[2];
*p[0] = daytab[0][0];
*p[1] = daytab[1][0];
मैं इस तरह एक त्रुटि प्राप्त:
Error: Array must have at least one element
Error: Variable 'p' is initialized more than once
Error: { expected
Error: Variable 'p' is initialized more than once
Error: { expected
***5 errors in Compile***
मैं इसे की तरह बदल यह:
int *p[2];
p[0] = &daytab[0][0];
p[1] = &daytab[1][0];
मुझे अभी भी मिलता है एक ही त्रुटि
मैं जानता हूँ कि हम निम्न में के रूप में चरित्र तार की ओर इशारा की एक सरणी बना सकते हैं:
char *str[] = {
"One", "Two", "Three",
"Four", "Five", "Six",
"Seven", "Eight", "Nine"
}
हम कैसे हैं कि पूर्णांक सरणियों के लिए?
"* यह काम नहीं करता है *" अधिक या कम महत्वपूर्ण त्रुटि रिपोर्ट एक दे सकते हैं। त्रुटि, चेतावनी, खराब होने पर आपको अधिक सटीक रहें, निरीक्षण करें! – alk
पहला उदाहरण: अमान्य पॉइंटर को डिफ्रेंस करके सेगमेंटेशन फॉल्ट का कारण बनने का बड़ा मौका दूसरा उदाहरण: क्या आप समझाएंगे कि "काम नहीं करता" से आपका क्या मतलब है? – MikeCAT
दिखाए गए कोड (दूसरे दृष्टिकोण का उपयोग करके) मुझे अच्छा लग रहा है। – alk