我有一个需要返回一个数组的函数,因为这是不可能的,而是返回指向该数组的指针.然后我需要在main函数中打印这个数组.我该怎么做呢?
这是我的意思的一个例子:
char* myFunction (void) { char myArray[5] = {'one','two','three','four','five'}; return myArray; } int main(void) { printf("%s",myFunction); return 0; }
但这只是打印指针:uF $.或者,如果我将函数打印为整数,则打印:791013.那么如何实际打印数组中的5个元素?
谢谢!
char* myFunction (void) { char myArray[5] = {'one','two','three','four','five'}; // WRONG see 1 and 2 return myArray; // WRONG see 3 } int main(void) { printf("%s",myFunction); // WRONG see 4 return 0; }
字符串要求""不是"(用于个别字符)
char foo [5]将是一个字符数组.字符串本身是字符数组,所以你需要char*foo [5]
你不能返回一个本地声明的数组(通常,你不能返回一个指向本地声明的数据的指针,因为它存在于堆栈中,一旦函数返回就无效)
myFunction是一个函数,如果想要调用它,你需要().但%s无论如何都不会起作用,因为%s用于打印字符串.你需要一个for循环遍历数组,然后用%d打印出整数.但是,由于这是C++,你可能应该使用cout而不是printf(一个C std库函数).