问一个关于函数调用的问题
程序大概是这样的:读取用户输入的字符串,
调用函数,
结束程序。
这个函数是,在之前就有的结构里找到该字符串所在的结构,将整个结构输出。
(因为不光这么简单,所以要调用一个函数)
那在函数里怎么申明局部变量啊?求解答~
程序代码:#include <stdafx.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void f(char *str) { //字符串作参数
printf(str);
}
char * r() { //字符串作返回值
//使用动态分配内存,不要使用局部变量比如
//char buf[80]; 因为局部变量在函数结束时,栈区变量已被回收
char *str = (char *)malloc(256 * sizeof(char));
if (str==0) { printf("can't alloc mem\n"); return 0;}
else memset(str, 0x00 ,sizeof(char) * 256);
return str; //
}
int main()
{
char *pstr = r();
if (pstr!=0) strcpy(pstr, "hello world\n");
f(pstr);
free(pstr);
system("pause");
return 0;
}