我和我的搭档正在研究这个涉及函数指针的问题。目标是编写一个函数,将多个字符串处理函数应用于字符串。然后,该函数返回一个字符串数组,其中包含输入字符串上每个处理函数的结果。任何帮助,将不胜感激。谢谢!
char** string_central(char*(**)(char*), char* str);
char* char_double(char* str);
char* char_shift(char* str);
char* char_flip(char* str);
void main(int argc, char* argv[]) {
char* (*functions[])(char *) = {char_double, char_shift, char_flip, NULL};
char** result = string_central(functions, *argv);
char* result_ptr = *result;
while( result_ptr ){
printf("Result: %s", result_ptr);
result_ptr++;
}
}
char** string_central(char*(*functions[])(char*), char* str){
char** returnArray = (char **) malloc(100*sizeof(char));
char** firstposition = returnArray;
while(*functions != NULL) {
*(returnArray)++ = (*(functions))(str);
}
*(returnArray)++ = "\0";
return firstposition;
}
//Other Functions work properly
最佳答案
您需要在 string_central 中使用 malloc,如下所示 => (100 * sizeof(char*))。字符的大小通常为 1 个字节,任何指针的大小通常为 4 个字节。 (IIRC)
哦,还有,记得在使用内存后释放它们。
关于C - 函数指针的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35496259/