【发布时间】:2014-10-01 23:17:27
【问题描述】:
我有一个任务,我需要将一个字符串指针数组传递给一个函数,分配字符串,然后读回这些字符串。这是我正在做的事情:
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() 中打印它们时,它是空白的。我在这里做错了什么?
【问题讨论】:
-
See here解释