Possible Duplicate:
Trouble with returning a string from function
Can a local variable’s memory be accessed outside its scope?
我试图使用函数来修改字符串指针的值。我声明了一个名为someStruct的结构,其中一个字段是指向名为“valu”的字符串的指针。以下是我所做的:
void func(char* nvalue,someStruct* container){
char temp[strlen(nvalue+1);
temp=strcpy(temp,nvalue);
container->valu=temp;
return;
此函数是否将容器的值修改为nvalue?如果没有,我怎么办我真的不擅长C,所以任何帮助都会很好!谢谢你
最佳答案
由于tmp
是一个局部变量,因此访问函数外部的container->value
是一个未定义的行为。但是,可以使用动态分配来控制变量的生存期。
#include <stdlib.h>
#include <string.h>
char **p = &container->value;
*p = malloc(strlen(nvalue) + 1);
if (*p != NULL)
{
strcpy(*p, nvalue);
}
关于c - C-可以在函数调用之外访问本地声明的String吗? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14546923/