正文
c语言函数返回地址 c语言函数返回地址怎么写
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
C语言的return能返回地址值吗?
可以。返回指针实际上就是地址。
例如c语言函数返回地址:
#includestdio.h
#includestdlib.h
// 动态分配 n 个字节c语言函数返回地址,返回 char *
char *f(char *name, int n){name = (char*) malloc(sizeof(char)*n);
return name;
}
// 动态分配 n 个字节c语言函数返回地址,返回 void *
void *v(char *name, int n){name = (char*) malloc(sizeof(char)*n);
return name;
}
main(){ char *name;
char *p;
int *x,i;
p = f(name,50); // 给 p 分配 50个字节c语言函数返回地址,等于声明c语言函数返回地址了 char p[50]
scanf("%s",p); // 使用 char p[50]
printf("%s\n",p);
x = (int *) v(name,40); // 给 x 分配 40个字节,(并强制转换)等于声明了 int x[10];for (i=0;i10;i++) x[i]=i+1; //使用 int x[10];
for (i=0;i10;i++) printf("%d ",x[i]);
}
C语言函数返回值地址
#includestdio.h
void string_cut(char s[],char c)
{int i,j;
for(i=j=0;s[i];i++)
if(s[i]!=c)s[j++]=s[i];
s[j]='\0';
}
int main()
{char s[200],ch;
gets(s);
scanf("%c",ch);
string_cut(s,ch);
printf("%s\n",s);
return 0;
}
怎样在C语言中用函数返回一个数的地址呢?
首先函数返回一个指针类型即返回地址。
例c语言函数返回地址:
int * func(void)
{
int a= 10c语言函数返回地址;
int *p = a;
return p;
}
C语言中如何让自定义函数返回一个字符串的地址?
char * fun(){
char s[100];
//...代码
//return s;//原来c语言函数返回地址你自己写c语言函数返回地址的返回语句c语言函数返回地址,改为下面c语言函数返回地址的语句
char* str = malloc(strlen(s)+1);
strcpy(str, s);
return str;
}
在函数内部定义c语言函数返回地址的任何变量,当函数返回后都会被系统收回内存,指针也会被收回,但是指针指向的地方就不一定了,就好比你的电话本上的记录被删除了,但是电话对应的那个人和手机还在。同样的道理,想要返回字符串,只能把内容放在安全的地方,也就是动态内存,然后把该内存对应的地址返回就可以,就好比你把一个人的电话号码告诉另一个人,然后把你手机上的删除,另一个人也不受影响。
c用malloc或者calloc,c++用new,意思就是申请一块完全由程序员管理的内存,不再使用时也需要程序员指明回收,malloc和calloc出来的用free,new出来的用delete。如果使用不当,比如内存没有回收,就会造成内存泄露,如果回收了还继续用,就会造成非法访问。所以使用时要细心。
如何用一个C语言函数返回一个数组的首地址?
int * scanffile(FILE *fp,int n){
int i;
static int array[10]; //因为array是局部变量,随scanffile()函数的结束,该内存被释放,因此,你在之后得不到相应的数据了。 改成static静态变量就可以了!
for(i=0;in;i++){
fscanf(fp,"%d\t",array[i]);
}
for(i=0;i5;i++)
printf("%d\t",array[i]);
return array;
}
关于c语言函数返回地址和c语言函数返回地址怎么写的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。