如何将指针数组分配给静态数组的内容? charmydata[505][3][50]//2D阵列,每个50个字符长 char**tableData[505]={NULL}; 常量字符*文本; text=sqlite3\u column\u text(stmt、col\u索引); strcpy(myData[行索引][c索引],文本); tableData[行索引]=myData[行索引][c索引]
如何将指针数组分配给静态数组的内容? charmydata[505][3][50]//2D阵列,每个50个字符长 char**tableData[505]={NULL}; 常量字符*文本; text=sqlite3\u column\u text(stmt、col\u索引); strcpy(myData[行索引][c索引],文本); tableData[行索引]=myData[行索引][c索引],c,arrays,pointers,C,Arrays,Pointers,tableData将代表什么 如果它要表示一个字符串数组(为了简单起见,我将把char*称为字符串),您应该将声明编辑为char*tableData[len] 如果它要表示一个字符串的2D数组(这就是当前声明的意思),那么应该将其设置为tableData[i]=myData[x] myData[x][y]是单个字符串,而不是字符串数组。在代码段的最后一行中,您试图将其分配给需要字符串数组的对象。这不是一个有效的操作。只是 char myData[505][3][50]; //2D array
tableData
将代表什么
如果它要表示一个字符串数组(为了简单起见,我将把char*
称为字符串),您应该将声明编辑为char*tableData[len]代码>
如果它要表示一个字符串的2D数组(这就是当前声明的意思),那么应该将其设置为tableData[i]=myData[x]
myData[x][y]
是单个字符串,而不是字符串数组。在代码段的最后一行中,您试图将其分配给需要字符串数组的对象。这不是一个有效的操作。只是
char myData[505][3][50]; //2D array, each 50 chars long
char **tableData[505] = {NULL};
const char* text;
text = sqlite3_column_text(stmt, col_index);
strcpy(myData[row_index][c_index],text);
tableData[row_index] = myData[row_index][c_index]; <--?
myData不是您所写的静态数组,您的数组是3D(三维),而不是评论中所说的2D。@abelenky:他的数组是由1D数组组成的2D数组。每个1D阵列的大小为50。这和他说的一模一样:)警告C4047:“=”:“char**”与“char*”在间接寻址级别上不同,汤米,哦,是的。为什么tableData[rowIndex]被声明为字符**数组?我想应该是char*数组。它将代表什么?
tableData[row_index] = myData[row_index]