我将多维字符数组传递给 c 中的函数。main() 或任何函数确定输入数组的大小(维度)。我试图在我的函数中动态确定数组的长度和宽度。到目前为止,我已经能够动态确定第一行的宽度。但是,如果我尝试使用相同的逻辑来确定长度,则会出现访问冲突错误。这是我到目前为止的代码:
char * myfunc( char* in[] )
{
int index=0, cols=0;
while( in[0][index++] != '\0' );
cols = index - 1;
:
:
}
int main()
{
char *in[3] = {"abcd","efgh","ijkl"};
char *out = myfunc( in );
:
:
}
对我来说幸运的是,**in 的所有“行”中的“cols”都是相等的。我知道一种更强大的方法是首先确定行数,然后测试每行的列数。每次尝试对行执行类似操作时,都会导致访问冲突错误。
我应该提一下,我无法重新定义函数来传递数组的维度。我还要提一下,这不是作业或工作作业,我在刷 c 编码技能时遇到了这个问题。有没有办法确定上述情况下的行数而不会导致访问冲突错误?