希望我了解您的代码正在尝试做什么。已将其重写为:
#include <stdio.h>
void main()
{
// allocate 40 uninitialized pointers to char strings
char *text_ptr[10][4]; //10 rows, 4 columns
int i;
for (i = 0; i < 10; i++)
{
// essentially, copy ptr to string literal into an array element
text_ptr[i][0] = "a";
text_ptr[i][1] = "xyz";
text_ptr[i][2] = "b";
text_ptr[i][3] = "xyz";
// print two elements from each row for a quick check
printf("\n%s, %s", text_ptr[i][0], text_ptr[i][1]); fflush(stdout);
}
} // end of main;
// Note. This code WAS tested in an Eclipse/Microsoft C compiler environment.
strcpy()
取决于要分配的字符串的区域,以便可以将其复制到。在上面的代码中有一个 char 指针数组,每个指针都设置为被分配的字面量的地址。
在此代码中,您无法更新分配的字符串。如果要修改字符串,则需要为malloc()
40 个 ([10][4]) 指针中的每一个执行一个,并且每个指针都malloc()
需要分配字符串的长度(或最大长度),即. 与该指针元素相关联。