在另一个函数分配字符串(字符*) [英] Allocate string (char*) in another function
本文介绍了在另一个函数分配字符串(字符*)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我如何(M)在另一个函数分配字符串?我试着通过2种方式来做到这一点(在下跌code JUST实例 - 我不会以argv做)。
How do I (m)allocate string in another function? I've tried to do it by 2 ways (down in code JUST EXAMPLE - I wouldn't do it with argv).
void someFunction(char* string, char** argv) {
string = (char*)malloc(strlen(argv[2]) + 1);
strcpy(string,argv[2]);
// string[strlen(argv[2]) + 1] = '\0' //should I do this now?
printf("%s",string); //outputs string (works fine)
}
int main(int argc, char** argv) {
char *string;
char *string2;
someFunction(string,argv);
printf("%s",string); //outputs (null)
free(string);
someFunction(&*string2,argv);
printf("%s",string2); //outputs (null)
free(string2);
}
我想在主用串,但在不同的功能mallocate它。
I want to use "string" in main, but mallocate it in different function.
感谢您!
推荐答案
您想这样的:
void someFunction(char** string, char** argv) {
*string = (char*)malloc(strlen(argv[2]) + 1);
strcpy(*string, argv[2]);
// string[strlen(argv[2]) + 1] = '\0' //should I do this now?
printf("%s",*string); //outputs string (works fine)
}
int main(int argc, char** argv) {
char *string;
char *string2;
someFunction(&string,argv);
printf("%s",string);
free(string);
}
这篇关于在另一个函数分配字符串(字符*)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文