经历了数十个教程和编程指南,答案并没有变得明显,因此发布。请善待。
手头的问题是对char的双d数组的实际操作:{“aaaaa”,“bbbbb”,“ccccc”,.... M}
第一个问题是声明这种野兽的初始化,以便改变字符串“aaaaa”,“bbbbb”等中的数据。
声明和初始化如下:
char *chararray[M][N + 1] //M & N are set as constant values, the extra 1 for the null terminator.
memset (chararray, '\0', sizeof(chararray)); //Assuming array bounds remain constant, in the hope that dynamic allocation is not required
假设还定义了一个字符串文字:
char *copyme; //Has been given a string value well within the bounds of N
尝试在strcat或strcat_s(strcpy或strcpy_s类似)中使用它时出现问题:
strcat_s (chararray [i][0], N + 1, (char *) copyme); //i ranges from 0 to M
没有遇到任何以这种方式处理数组的代码,我从这个tutorial注意到memcpy是唯一的方法。正确的吗?
另外,在从Main调用函数时如何实现John Bode的General Procedure? (为简洁起见,这可能必须作为一个单独的问题提交,)