C++ 如何向二维数组添加字符?
我的代码:C++ 如何向二维数组添加字符?,c++,arrays,pointers,multidimensional-array,C++,Arrays,Pointers,Multidimensional Array,我的代码: FILE * file; file = fopen("c://catalog//file.txt", "r"); int m,n; //size of 2d array (m x n) fscanf(file, "%d", &m); fscanf(file, "%d", &n); fclose(file); printf("Size: %d x %d\n", m, n); // create 2d array char **TAB2 = new char*[m
FILE * file;
file = fopen("c://catalog//file.txt", "r");
int m,n; //size of 2d array (m x n)
fscanf(file, "%d", &m);
fscanf(file, "%d", &n);
fclose(file);
printf("Size: %d x %d\n", m, n);
// create 2d array
char **TAB2 = new char*[m];
for (int i = 0; i < m; i++)
char *TAB2 = new char[n];
// display 2d array
for (int i = 0; i < m; i++){
for (int j = 0; j < n; j++)
{
printf("%c ", &TAB2[i][j]);
}
printf("\n");
}
我尝试过:TAB2[0][0]=“s”*&TAB2[0][0]=“s”;对于一个字符,这不起作用
可能我用的指针不好(?)。有人帮我吗?动态分配数组错误
char **TAB2 = new char*[m];
for (int i = 0; i < m; ++i)
TAB2[i] = new char[n];
重要环节:
动态分配数组错误
char **TAB2 = new char*[m];
for (int i = 0; i < m; ++i)
TAB2[i] = new char[n];
重要环节:
数组的分配似乎不正确;应该是这样的
char **TAB2 = new char*[m];
for (int i = 0; i < m; i++)
TAB2[i] = new char[n];
char**TAB2=新字符*[m];
for(int i=0;i
阵列的分配似乎不正确;应该是这样的
char **TAB2 = new char*[m];
for (int i = 0; i < m; i++)
TAB2[i] = new char[n];
char**TAB2=新字符*[m];
for(int i=0;i
我更正了,这应该是“文件”指针的错误使用。for循环中用于为每行字符分配内存的部分已经错误。应该是类似于TAB2[i]=新字符[n];或者每次分配一个新的字符数组时,将指针*TAB2向前移动打印内容也错误。您正在将地址而不是字符传递给printf。(即移除&)谢谢您的帮助!solvedi更正了,这应该是“文件”指针的错误使用在这里。for循环中用于为每行字符分配内存的部分已经错误。应该是类似于TAB2[i]=新字符[n];或者每次分配一个新的字符数组时,将指针*TAB2向前移动打印内容也错误。您正在将地址而不是字符传递给printf。(即移除&)谢谢您的帮助!解决了,哦,这是我在第一个链接@sehe中的照片!哈哈。顺便说一下,好的链接,我正在编辑。欢迎@adfgvx。请务必查看我问题中的链接@萨马拉斯修正了第一个删除:-)一个bug@Diego?请告诉我更多。或者哦,这是我在第一个链接@sehe中的照片!哈哈。顺便说一下,好的链接,我正在编辑。欢迎@adfgvx。请务必查看我问题中的链接@萨马拉斯修正了第一个删除:-)一个bug@Diego?请告诉我更多。
char **TAB2 = new char*[m];
for (int i = 0; i < m; i++)
TAB2[i] = new char[n];