可不可以将调用函数的值赋给一个二维数组?
来源:百度知道 编辑:UC知道 时间:2024/05/23 00:36:03
问题如上,
例有一调用函数chen,其return值为一二维数组
则在主函数中可不可以将其值赋给一新定义数组?
若不可以,应该怎么办?
在TC环境下,简单c语言。题目的意思是在主函数中,例有一数组变量b[][],可不可以出现b=chen这种形式的语句,我用的TC2提示是有错的。再说清楚点,chen是一个调用函数,其返回值是一数组。
例有一调用函数chen,其return值为一二维数组
则在主函数中可不可以将其值赋给一新定义数组?
若不可以,应该怎么办?
在TC环境下,简单c语言。题目的意思是在主函数中,例有一数组变量b[][],可不可以出现b=chen这种形式的语句,我用的TC2提示是有错的。再说清楚点,chen是一个调用函数,其返回值是一数组。
题中有代码吗?
问题的关键是函数chen返回的数组到底是在哪里分配的。如果是在chen栈中分配的,当然是不可以,这会导致主函数中的数组b引用一个已经被释放(可以这么说)的内存位置。如果chen返回的数组是在堆中分配的,就可以,因为当chen返回时,这个数组不会被销毁!
既然你反复强调是“简单”C语言,我可以理解为没有涉及到堆这个概念,所以答案就应该是:不可以!
如果这个二维数组是被调函数chen中的栈中定义话,不可以,就像下面这样:
int **chen()
{
int a[10][10];
return a;
}
如果是静态的二维数组,是可以的,如下:
int **chen()
{
static a[10][10];
return a;
}
一般的解决方法是,在堆中分配一个数组,如下:
int** chen() //C++
{
int *a=new int*[10];
for(int i=0;i<10;i++)
a[i]=new int[10];
return a;
}
int** chen() //C
{
int *a=malloc( sizeof(int*) *10);
for(int i=0;i<10;i++)
a[i]=malloc(sizeof(int)*10);
return a;
}
用C#将文本框TEXTBOX的值赋给网页控件webbower中的变量,再调用该网页中的函数
C#连接ACCESS数据库。如何将表中的一列数值赋给一个数组,并调用
JSP 中如何将一个ArrayList的值赋给Session
vb中怎样将一个数组的值赋给另一个?
一个函数的调用问题
编写一个排序函数,调用该函数,将经过排序后的数据在主调函数中输出。谢啦。
在ASP.NET将用OleDbCommand取出的值赋给一个字符串变量,怎么实现啊?
c++里一个返回值是int的public成员函数的返回值不能赋给一个一般的int变量吗?
关于JavaScript调用函数的一个问题!
vb设计一个调用数据库的函数