我有一个赋值,我需要将一个字符串指针数组传递给函数,分配字符串,然后回读这些字符串。下面是我在做什么:将字符串指针的数组传递到函数并读取字符串的值
void getStr(char *str[])
{
char temp[256];
strcpy (temp,"Apple");
*str = temp;
printf("\ngetStr Str= %s",*str);
str++;
strcpy (temp,"Mango");
*str = temp;
printf("\ngetStr Str= %s",*str);
str++;
}
int main()
{
char *str[2] ;
int i=0;
getStr (str);
for(i =0 ;i<2;i++)
printf("\nstr addr =%x, str= %s\n",&str[i],str[i]);
return 1 ;
}
Here is my output:
getStr Str= Apple
getStr Str= Mango
str addr =28d623b0, str=
str addr =28d623b8, str=
所以STR获取getStr(正确分配的字符串),但是当我打印出来在main()是空白。我在这里做错了什么?
[请参阅此处](http://stackoverflow.com/questions/1224042/returning-a-pointer-to-an-automatic-variable/)解释 – 2014-10-01 23:30:18