char **问题
函数f中,定义size个一维动态数组
f(char **A)
{
A = new char*[size];
for(int i = 0; i < size; i++)
{
A[i] = new char[10];
}
delete [] A;
}
int main()
{
char **A = NULL;
f(char **A);
}
该函数的功能是,返回A[i]中的内容,这么写不对,应该这么传这个参数呢?
[解决办法]
#include <stdio.h>
void f(char ***a,int r,int c) {
(*a) = new char*[r];
for (int i=0;i<r;i++) (*a)[i] = new char[c];
}
int main() {
char **A;
int i,j;
f(&A,3,4);
for (i=0;i<3;i++) {
for (j=0;j<4;j++) {
A[i][j]='A'+i*4+j;
}
}
for (i=0;i<3;i++) {
for (j=0;j<4;j++) {
printf("%c",A[i][j]);
}
printf("\n");
}
for (i=0;i<3;i++) delete[] A[i];
delete[] A;
return 0;
}
//ABCD
//EFGH
//IJKL
//