【发布时间】:2015-09-19 02:21:57
【问题描述】:
我对指针比较陌生,慢慢学习如何使用它们。我在这里遇到了一个问题,我已经尝试了所有的选择。我有一个指针 char* pMonthName;指向monthName,它是一个字符数组。我试图用 cout
char monthName[12][15];
// initialize
strcpy_s(monthName[0], "january");
strcpy_s(monthName[1], "febuary");
strcpy_s(monthName[2], "march");
strcpy_s(monthName[3], "april");
strcpy_s(monthName[4], "may");
strcpy_s(monthName[5], "june");
strcpy_s(monthName[6], "july");
strcpy_s(monthName[7], "august");
strcpy_s(monthName[8], "septempber");
strcpy_s(monthName[9], "october");
strcpy_s(monthName[10], "november");
strcpy_s(monthName[11], "december");
// create a char pointer
char* pMonthName;
// make pointer point to the array
pMonthName = &monthName[12][15];
// print array using the pointer
for (row = 0; row < 12; row++)
{
length = strlen(monthName[row]);
for (col = 0; col < length; col++)
{
cout << *pMonthName;
}
cout << endl;
}
【问题讨论】:
-
我是 inb4
"febuary"和"septempber"。您提供的代码甚至无法编译,更不用说重现您面临的问题......我们应该关闭这个问题,还是您会好心地产生一个mcve? -
inb4 没有月份名称[12]
-
pMonthName = &monthName[12][15];你在这里做什么?编译器已经知道数组是 12 x 15。您在这里所做的只是将越界地址分配给指针。