如何通过函数返回数组首地址

int * scanffile(FILE *fp,int n){
     int i;
static int array[10]; //因为array是局部变量,随scanffile()函数的结束,该内存被释放,因此,你在之后得不到相应的数据了。 改成static静态变量就可以了!

for(i=0;i<n;i++){
  fscanf(fp,"%d\t",&array[i]);
 
}
for(i=0;i<5;i++)
printf("%d\t",array[i]);
return array;
}

时间: 2024-12-29 15:40:09

如何通过函数返回数组首地址的相关文章

[转]jna模拟指针开辟空间,数组首地址获取值

http://blog.csdn.net/zhuzhichao0201/article/details/5817819 不是很明白,先记在这里 ------------------------------------------------------------ dll里面给的函数如下:ReadWordBlock(HANDLE hScanner,  BYTE EPC_WORD,  BYTE *IDBuffer,  BYTE mem,  BYTE ptr,  BYTE len,  BYTE *D

通过函数返回数组

C语言中,一个函数是不能直接返回一个集合类型的,但是我们可以返回一个数组地址,需要注意的是C语言不能返回局部变量(local variable)的地址,所以我们要在函数中将其定义为静态变量(static variable). #include<stdio.h> int *get_arr(); int main() { int *arr = get_arr(); int i = 0; for(; i<3; i++) { printf("%d\t", *(arr+i));

数组首地址取地址

一.问题来由 普通指针可被改动导致地址偏移: #include <iostream> using namespace std; int main(int argc,char *argv[]) { int a = 6; int *p = &a; //p存放一个地址.pp存放p的地址,上面的代码能够让p存放的地址偏移 cout<<&a<<endl; int *pp = (int *)&p; cout<<p<<endl; (*p

shell 函数 返回数组

shell 函数 返回数组,布布扣,bubuko.com

C语言中函数返回数组

#include "stdio.h"/*int* set(int a,int *c){ int *b; b=malloc(sizeof(int)*3); c[0]=a; c[1]=1+a; c[2]=2+a; b[0]=13; b[1]=14; b[2]=15; return b;}*/char *set(void){ char *buf; buf=malloc(sizeof(char)*3);//创建内存区 buf[0]=0x30; buf[1]=0x31; buf[2]=0x32;

从函数返回数组

1 char* vector_advance(char* val) 大部分人都遇到过上面的函数,最大的问题就是资源由谁释放? 再看一个函数 1 char (&vector_advance(char (&var)[4]))[4] 这个函数的意思是,vector_advance是函数名,接收一个包含4个元素的数组,返回一个包含4个元素的数组,这个写法确实有点怪异, 换个易懂的写法 1 typedef mychar char[4]; 2 mychar& vector_advance(my

数组名a、数组名取地址&amp;a、数组首地址&amp;a[0]、数组指针*p

本文链接:https://blog.csdn.net/loongkingwhat/article/details/78910921 数组和指针向来就是傻傻分不清,当他们一起出现的时候就更加懵逼. 1 解析不同变量之间的区别: 数组名a: 数组名可以作为数组第一个元素的指针.我们由数组和指针的关系知道,a代表这个地址数值,它相当于一个指针,指向第一个元素(&a[0]),即指向数组的首地址.数组中的其他元素可以通过a的位移得到,此时的进阶是以数组中单个的元素类型为单位的,即a+i= & a[i

函数返回数组

这个问题属于非常初级的问题,但是对于初学不知道的人可能会比较头疼.C++中函数是不能直接返回一个数组的,但是数组其实就是指针,所以可以让函数返回指针来实现.比如一个矩阵相乘的函数,很容易地我们就写成: #include <iostream> using namespace std; float* MultMatrix(float A[4], float B[4]) { float M[4]; M[0] = A[0]*B[0] + A[1]*B[2]; M[1] = A[0]*B[1] + A[

C语言——数组名、取数组首地址的区别(一)

目录: 1. 开篇 2. 论数组名array.&array的区别 3. array.&array的区别表现在什么地方 4. 讨论 5. 参考 1.开篇 很多博客和贴吧都有讨论这个话题,各有自己的表述方式,今天在他们的基础上我将继续试着以我自己理解的方式总结一下,欢迎大家的审阅和指评. 2.论数组名array.&array的区别——省政府和市政府的区别 例如: int array[5] = {0}; 总所周知,其中的&array是整个数组array的首地址,array是数组首